undefined 的字面意思就是未定義的值 null 的字面意思是 空值 如果需要釋放某個對象,就將變數設置為null,即表示該對象已經被清空,目前無效狀態。試想一下,如果此處把 null 換成 undefined 會不會感到彆扭 typeof null == 'object' // true t ...
typeof 返回的是字元串,有六種可能: "number"、"string"、"boolean"、"object"、"function"、"undefined" 以及'symbol'
null,array,object返回的都是‘object’
判斷數組
Array.isArray([])//true
instanceof方法
instanceof 用於判斷一個變數是否某個對象的實例,左邊操作數是一個對象,右邊操作數是一個函數對象或者函數構造器。
原理是通過判斷左操作數的對象的原型鏈上是否具有右操作數的構造函數的prototype屬性。
var arr = [1,2,3,1]; alert(arr instanceof Array); // true
null,undefined的區別?
null表示一個對象被定義了,但存放了空指針,轉換為數值時為0。
undefined表示聲明的變數未初始化,轉換為數值時為NAN。
typeof(null) -- object;
typeof(undefined) -- undefined
undefined 的字面意思就是未定義的值
null 的字面意思是 空值 如果需要釋放某個對象,就將變數設置為null,即表示該對象已經被清空,目前無效狀態。試想一下,如果此處把 null 換成 undefined 會不會感到彆扭
typeof null == 'object' // true
typeof null === 'object' // true
null 有屬於自己的類型 Null,而不屬於Object類型,typeof 之所以會判定為 Object 類型,是因為JavaScript 數據類型在底層都是以二進位的形式表示的,二進位的前三位為 0 會被 typeof 判斷為對象類型,而 null 的二進位位恰好都是 0 ,因此,null 被誤判斷為 Object 類型。
undefined == null // true
null 和 undefined 的行為很相似,並且都表示 一個無效的值,那麼它們所表示的內容也具有相似性
undefined === null //false
因為全等操作 === 在比較相等性的時候,不會主動轉換分項的數據類型,而兩者又不屬於同一種類型
Number(null) // 0
Number(undefined)// NAN
在比較相等性之前,null 沒有被轉換為其他類型
null == 0 ; //false