JavaScript高級程序設計----讀書筆記,第三章

  1. 基本語法
    • 標識符,由字母、數字、下劃線“_”、美元符號“$”組成,數字不能開頭,採用駝峯大小寫格式。不可以使用關鍵字和保留字以及包含特殊意義的字符串(true、false、null)。
    • 註釋,// 單行註釋; /*…….*/多行註釋.
    • 嚴格模式,爲JavaScript定義了一種不同的解析與執行模型。啓動嚴格模式: “use strict” 該模式下執行結果會由很大差異。
    • 語句,省略結尾的分號,解析器會推測語句結尾。必須寫上避免錯誤。
  2. 變量
    • 變量類型爲鬆散類型,即可以保存任何類型的數據。每個變量僅僅是一個用於保存值的佔位符而已。
    • 定義方式:var 變量名。 若省略var,變量會變爲全局變量(不推薦使用)。
    • 在嚴格模式下,不能定義 eval 或 arguments 的變量,否則會導致語法錯誤。
  3. 數據類型

    • 五種簡單數據類型,Undefined、Null、Boolean、Number、String;一種複雜數據類型,Object。
    • typeof 操作符,檢測給定變量的數據類型,返回值含義:
      • undefined,如果這個值是定義但未初始化的,或者是未定義的
      • boolean,這個值是布爾值
      • String,這個值是字符串
      • number,這個值是數值
      • object,這個值是對象或 null
      • function,這個值是函數
    • Undefined類型: 只有一個值,就是undefined。在使用 var 聲明變量但是未對其加以初始化時。
    • Null類型: 表示一個空對象指針。只有一個特殊值爲null。

      undefined派生自null,null == undefined 爲 true 。無論何時都不需要把一個變量值顯式的設置爲undefined,但是若準備保存對象的變量還沒有真正保存對象就明確讓該變量保存 null(空指針) 值。

    • Boolean類型: 只有兩個字面值,true 和 false。調用 Boolean()函數可以將一個值轉換爲對應的Boolean的值。
    • Number類型: 保存數值字面量,整數和浮點數。
      • 保存浮點數的空間是整數的兩倍
      • 浮點數計算會產生舍入誤差的問題,這是IEEE754數值的浮點計算的通病。所以永遠不要測試某個特定浮點數值
      • 能表示的最小值:Number.MIN_VALUE = 5e-324;最大值爲Number.MAX_VALUE。
      • 若計算結果超過範圍,將被自動轉換爲誒特殊 +/-Infinity (無窮)值。使用 isFinite()可以確定數值是否有窮。
      • NaN,特殊數值。用於表示本來要返回數值的操作數未返回數值的情況。NaN值與任何值都不相等,與自身也不相等。IsNaN()函數可以確定一個值是否可轉換爲數值類型,不能返回true,否則返回false。
      • 將非數值轉換爲數值函數:Number(),可以用於任何數據類型;parseInt() 和 parseFloat() 專門把字符串轉換爲數值類型。
    • String類型: 保存字符串,用雙引號或者單引號表示。length表示字符串長度,但是若包含雙字節字符,返回結果不精確。字符串創建不可改變。可以調用toString()轉換字符串,null和undefined沒有這個方法。
    • Object類型: 使用語法與Java創建對象類似。
  4. 操作符
    • 一元操作符:遞增和遞減,前置是先算再用,後置是先用後算。
    • 位操作符:~ 取反,按位非操作本質:操作數的負值減一;& 與操作,| 或操作,^ 異或操作; << 左移操作(不會影響符號位), >> 有符號右移操作(保留符號位), >>> 無符號右移(會影響符號位)。
    • 布爾操作符:! 邏輯非,&& 邏輯與,|| 邏輯或。
    • 基本操作符: + 、- 、 * 、 / 、 % 。
    • 相等操作符: 相等和不相等,先轉換再比較。全等和不全等,再兩個操作數未經轉換就比較。推薦使用全等和不全等。
    • 條件操作符: a = (表達式) ? 語句1: 語句2;
  5. 語句

    • if 、 if else 、 do-while 、 while 、for 、switch 、 break 、 continue。
    • for-in 語句,一種精準的迭代語句,可以用來枚舉對象的屬性。
    • lable 語句,爲代碼添加標籤,一般配合for循環使用。
    • with 語句,簡化多次編寫同一個對象的工作
      var qs = location.search.substring(1);
      var hostName = location.hostname;
      var url = location.href;
      // 等價爲
      with (location) {
          var qs = search.substring(1);
          var hostName = hostname;
          var url = href; 
      }
      
  6. 函數
    • 使用關鍵字 function 來定義,後跟一組參數和函數體。
    • 函數不介意傳遞進來幾個參數,定義時爲兩個,使用時可以傳遞一個、三個甚至不傳遞參數。因爲JavaScript中的參數在內部是用一個數組來表示的,函數接受到的永遠是這個數組。可以通過aguments對象來訪問這個參數數組。arguments對象的長隊是由傳入的參數個數決定的。
    • JavaScript中所有參數傳遞都是值,不可能通過引用傳遞參數。
    • JavaScript沒有函數重載。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章