javascript權威指南(6)隨筆
不可變的原始值和物件的引用:
Javascript的型別轉換:
在實際開發中,會常見如下型別轉換方式:x + " " // 轉為為字串,等價於String(x); + 3 或 x - 0 //轉換為數字,等價於Number(x);!!x 轉為為布林型別,等價於Boolean(x);
判斷值:null undefined "" false 0 NaN 均為false
中斷迴圈:
break : 立即退出最內側迴圈或者switch語句。當整個陣列遍歷完成以後會正常退出迴圈,如果找到需要查詢的陣列,則使用break語句退出迴圈。
for (var i = 0; i < a.length; i++) {
if (a[i] === target) break
}
嚴格模式(use strict)和非嚴格模式區別(前三點重要)
*在嚴格模式中禁止使用with語句
*在嚴格模式中,所有的變數都需要提前宣告,如果給一個未宣告的變數、函式、函式引數、catch從句引數或全域性物件的屬性賦值,將會丟擲錯誤異常。
(非嚴格模式中,這種隱式宣告的全域性變數的方法是給全域性物件新新增一個新屬性)。
*在嚴格模式中,呼叫的函式(不是方法)中的一個值是“undefined”。
(非嚴格模式中,呼叫的函式中的this的值總是全域性物件)。可以利用這個特性判斷js是否支援嚴格模式。
var hasStrictMode = (function () {'user strcit'; return this === undefined} ()) ;
*在嚴格模式中,當通過call()和apply()來呼叫函式時,其中的this值就是通過call()和apply()傳入的第一個引數
(非嚴格模式中,null和undefined值被全域性物件和轉換為物件的非物件值所代替)
物件屬性的特性:(屬性包含1個名字和4個特性)
*資料屬性4個特性:值(value)、可寫性(writable)、可列舉性(enumerable)、可配置性(configurable)
*存取器屬性4個特性:讀取(get)、寫入(set)、可列舉性(enumerable)、可配置性(configurable)