第三章 基本概念

来源:https://www.cnblogs.com/houlaidelu/archive/2018/11/17/9975432.html
-Advertisement-
Play Games

3.1 語法 ECMAScript 大量借鑒了其他語言的語法 3.1.1 區分大小寫 在ECMAScript中所有的東西都是區分大小寫的 3.1.2 標識符命名標準 標識符:就是 變數 屬性 函數 或者 參數 的名字 第一個字元必須是字母,下劃線_ 或者 美元符 $ 其他字元可以是 字母,下劃線 , ...


3.1 語法

   ECMAScript 大量借鑒了其他語言的語法

    3.1.1 區分大小寫  

           在ECMAScript中所有的東西都是區分大小寫的 

    3.1.2  標識符命名標準

          標識符:就是 變數 屬性 函數 或者 參數 的名字

  •  第一個字元必須是字母,下劃線_ 或者 美元符 $
  •  其他字元可以是 字母,下劃線 ,美元符,數字

       按照慣例 ECMA採用 駝峰大小寫格式   : 第一個字母小寫 其他每個單詞 首字母大寫 。

       不能把 關鍵詞  保留字 作為標識符

    3.1.3   註釋

//  單行註釋  

/* 
  多
  行
  註
  釋
*/

     3.1.4  嚴格模式

            ECMAScript5 引入了 嚴格模式 的概念 在頂部添加

"use static";

               嚴格模式下 JavaScript的執行結果會有很大不同

       3.1.5  語句

               ECMAScript 中 語句以一個 分號結尾 ,

var count = 1;
var mat = 2;

               可以把多條語句放在一個代碼塊里 , 代碼塊 以  {   開始   } 結尾

3.2 關鍵詞和保留字

     關鍵詞 : 有特定的用途 的關鍵字

breakelsenewvarcasefinallyreturnvoidcatchforswitchwhilecontinuefunctionthiswithdefaultifthrowdeleteintrydo 、 instranceof、  typeof

     保留字 :  儘管沒有特定用途 但卻是 將來可用到的 保留字

abstract 、 enum   、intshortboolean  、export  、interface、  static、  byte  、extends 、 long 、 super 、 char 、 final  、native  、synchronized 、 class  、float 、 package  、throws 、 const  、goto  、private 、transient 、 debugger 、 implements  、protected 、 volatile 、 double  、import  、public

3.3 變數

        ECMASceipt 是 鬆散類型 的  (弱類型)就是 可以用來保存任何類型的數據。 定義變數時要使用 var 操作符, 後面要跟著 標識符

// 定義了  一個名為 message 的 變數
var
message;

定義了一個名字為 message 的變數   該變數沒有任何值,會被保存為一個特殊的值 undefined  。  可以在 聲明變數的同時 設置 變數的 值 

var message = ”hello word“;

也可以再更改 message 的值   message = 100;     但不推薦這樣做    更改已保存的類型  但 ECMAScript 卻 可以這樣做

  如果用 var 定義一個變數 則此變數為該變數所再作用域的局部變數  , 也就是說 如果在一個函數內用var聲明一個變數則 此變數在函數結束後就被 銷毀 。 不過 如果省略 var 操作符 聲明 則創建全局變數

function count(){
    var message=100;    // 局部變數
}
count();
alert(message);     // 報錯


function counta(){
   hello=100;                 // 全局變數
}
counta();
alert(hello);   //  100     

 雖然 不加var操作符 就可以 聲明全局變數 但不建議這樣做  要儘量少聲明 全局變數 ,以減少混亂。

也可以 使用 一條語句 定義 多個變數 

var a=2,b="3",c=1;

3.4  數據類型

      ECMAScript有5種簡單的數據類型 也叫 基本數據類型 : Undefined Null  Boolean Number String 。 還有 一種複雜類型 Object, object 本質上由一組無序的名和值 組成。 ECMAScript 不支持 自定義類型的機制, 所有的值都是以上六種數據類型之一。

        3.4.1  typeof操作符

                使用typeof  操作符 可以檢查給定數據的類型 操作符可能返回以下字元串

  • ”undefined“  --- 如果這個值未定義 ;
  • ”String“    ---  這個值 是 字元串
  • "Number"  ---  這個值 是  數值
  • "Boolean"  ---  這個值  是  布爾值
  • "Object"   ---   這個值  是  對象 或者 null
  • "function" ---  這個值是  函數
var app="app";
alert(typeof(app));   //  "String"  
alert(typeof app);    // "String"    
alert(typeof 100);   // "Number"

 typeof 是操作符  不是函數 所以帶括弧和不帶括弧 是一樣的 。  

 null 會被認為是一個空的對象引用 所有會返回 object,   函數  在ECMAscript中是對象 ,不是數據類型 但函數也的確有特殊的屬性,因此 typeof 區分 函數 和 其他對象。

           3.4.2  Undefined  類型  

                 Undefined類型 只有一個值就是 undefined, 在使用var聲明變數時未將其初始化 (賦值),那麼這個變數的值就為 undefined  。

var message;
alert( typeof message);   // "undefined"

            3.4.3   Null  類型

               Null類型是第二給只有一個值的類型,這個值是 null  ,從邏輯角度看 null 表示一個空對象指針,因此 typeof 操作符對 null 時會返回 object 。

              3.4.4   Boolean  類型

                  Boolean類型是ECMAScript最常用的類型,此類型有兩個值: false  和  true。 這兩個值和數字值不是一回事 true不一定等於1  ,false不一定等於0 . 想將一個值轉為 Boolean 值 可以使用 Boolean()

var message="Hello word";
alert( Boolean(message) );  // true

              以下為 轉換規則:

               3.4.5 Number 類型

                   這種類型使用 IEEE754 格式來表示 整數  和 浮點數值。為支持各種數值類型 ECMA-262 定義了不同數值字面量格式。

              最基本的數值字面量格式是 十進位   直接在代碼中輸入數值即可。

              除了十進位外,整數還可以通過八進位 或者十六進位的 字面值來表示 , 八進位 第一位必須為0   然後是 八進位數字序列的 0~7  ,如果  字面值 中的數值超出了範圍  則 前導零 會被忽略  後面的數值 按                十進位  解析。  十六進位的開始前兩位必須是 0×  後面跟任何 十六進位序列數 0~9 和 A~F  (字母可以大寫也可以小寫),

var intNum=55;   //整數

var octalNum1=070;  // 八進位的 56
var octalNum2=079    // 無效的八進位數值    解析成  79

var hexNum1=0×A     // 十六進位的 10
var hexNum2=0×1f     // 十六進位的 31

                               浮點數值

                                             浮點數值就是 帶有一個小數點的數值,如果 小數點 後沒有任何數字則會被當成整數儲存 。 對於 極大或者極小的 數值可以使用 e 表示法 (科學計數法),

var floatNum=3.123e7;    // 等於  31230000

                                        浮點數值的最高精度是17位小數,但在算術計算遠遠不如整數精確  如: 0.2+0.1  不等於 0.3  而是等於 0.30000000000004   

                               數字範圍

                                        ECMAScript 能夠表示最小的數值保存在 Number.MIN_VALUE 中 ,大多數瀏覽器這個值為: 5e-324 ; 能夠表示的最大數值保存在 Number.MAN_VALUE 里 

                                         如果一個數計算超過最大範圍則這個值將自動轉換為特殊的 Infinty 值   如果 小於 最小範圍值則 轉換為  -Infinity  值  。 使用 isFinte() 函數 可以 返回這個值是否在正常範圍

                              NaN   

                                         NaN  即 非數值  是一個特殊的值, 這個數值表示 本來要返回數值的操作數未返回數值的情況 。 在其他語言  任何數除以0 都會報錯 但在ECMAscript中去會返回 NaN  這樣就不會報錯

                                         NaN 和 任何值 都不相等 包括 本身   。  isNaN() 函數可以 判斷 一個值 是否  不是數值  ,如果是數值或者可以轉換為數值則 返回 false。

                               數值轉換 

                                         有3個函數可以把非數值轉換為數值: Number() , parseInt() ,  parseFloat()  。  第一個函數可以用於任何類型  後兩個函數只用於將 字元串 類型

                                      Number()  函數 轉換規則 如下 

                                              如果是 Boolean的 值  true 轉為 1 ,false轉為 0

                                             如果是 數字值  ,只是簡單的 傳入 和 返回

                                               如果是 null  只是 返回 0

                                               如果是undefined 則返回 NaN

                                              如果是 字元串 則有以下規則

                                                                    如果字元串中只有數字 則將其轉為 十進位數值 

                                                                    如果 字元串 包含有效的 浮點數 格式 則轉換為對應的浮點數值

                                                                    如果 字元串 包含有效的十六進位格式  則轉為十六進位

                                                                    如果 字元串 是空的  則 轉換為 0

                                                                    如果字元串包含的是除以上的格式外 則轉換為 NaN 

                                           


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • oracle在創建表時和其他的資料庫有點不一樣,MySql中可以使用“auto_increment”即可。但是oracle有點麻煩,需要使用序列和觸發器達到目的。 具體步驟如下: 一、創建數據表create table employee(Id int ,DeptNo number,EmpNo num ...
  • 如標題所示,在MS SQL資料庫,實現一個功能,查找某一字元串在目標字元串中所在的位置。 在資料庫實現這個函數: CREATE FUNCTION [dbo].[svf_FindPosition] ( @Target NVARCHAR(4000), @ListSource NVARCHAR(4000) ...
  • 1. 5.6.38版本的資料庫密碼丟失找回方法: 第一步.關資料庫 第二步:mysqld_safe --skip-grant-tables --skip-networking & 第三步:mysql安全模式下登錄資料庫 update mysql.user set password=PASSWORD( ...
  • 索引是存儲引擎用於快速找到記錄的一種數據結構。索引優化應該是對查詢性能優化最有效的手段了。索引能夠輕易將查詢性能提高幾個數量級,"最優"的索引有時比一個"好的"索引性能要好兩個數量級。 索引可以包含一個(單列索引)或多個列(組合索引)的值。 想要使用組合索引首先要瞭解一個原則:最左首碼原則。如果索引 ...
  • 例如: ALTER TABLE stuinfo ADD CONSTRAINT fk_stuinfo FOREIGN KEY(gradeid) REFERENCES grade(id) ON DELETE CASCADE; . cascade方式在父表上update/delete記錄時,同步updat ...
  • 1.關閉當前項目和Xcode 2.打開終端或者iterm cd ~/Library/Developer/Xcode/DerivedData/ 3. xattr -rc . 4.重新打開項目 5.如果不行那你就再試試其他的辦法吧,我就是這樣弄好的 ...
  • 使用自定義的uitabbarcontroller,uitabbar ...
  • 微信小程式自定義組件彈窗wcPop|小程式消息提示框|toast自定義模板彈窗 平時在開發小程式的時候,彈窗應用場景還是蠻廣泛的,但是微信官方提供的彈窗比較有局限性,不能自定義修改。這個時候首先想到的是自定義組件化開發,就是把彈出框封裝成一個組件,然後多處調用。 解決了小程式開發自定義彈窗出現後,遮 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...