js基本型別
ES5共有5種基本型別,分別為number,string,null,undefined,boolean,ES6新增了symbol.
console.log(typeof undefined); 輸出為undefined
console.log(typeof null); 輸出為object
console.log(typeof [1]); 輸出為object
console.log(typeof 1); 輸出為number
console.log(typeof "1"); 輸出為string
console.log(typeof true); 輸出為boolean
任何物件轉化為布林值時,if判斷都為true,在js中,只有NaN,0,-0,“”,null,undefined這6個值轉化為布林值時,才為false.
加new表示建立物件,不加new表示型別轉換。
var a = new Boolean(0);
if(a){ //表示判斷物件
console.log(222);
}
可以正常輸出
if(undefined){ //判斷boolean時,undefined為false
console.log(222);
}
全域性函式中,setTimeOut(),不是全域性函式。decodeURI,encodeURI等都是全域性函式。
readonly屬性只有在input(text/password)有效,而disabled對於所有的表單元素均有效,包括select,radio,checkbox,button等。
document.getElementById("button").setAttribute("disabled",true);
document.getElementById("button").disabled = true;
==符號判斷相等的時候 如果一個值是null,一個值是undefined,則他們相等。
如果一個值是數字,另一個值是字串,則先將字串轉化為數字,然後再進行比較。
如果其中有一個值為true,則將其轉化為1再進行比較,如果其中有一個為false,則轉為0再進行比較。
如果有一個值為物件,另一個是數字或者字串,則將物件轉為原始值,再進行比較。
console.log([ ]) ? true:false) 輸出為true
console.log([] == false ? true:false) 等價為console.log(0 == 0 ? true : false); 輸出為true
console.log({} == false) ? true : false) 等價為console.log((NaN == 0) ? true : false) 輸出為false