JavaScript教程筆記(2)-關於null、undefined、true、false
阿新 • • 發佈:2018-11-11
1 null和undefined
1.1 定義
null和undefined都表示“沒有”,實際上,將一個變數賦值為null或undefined,語法效果幾乎一樣。它們的區別是:null是一個表示“空”的物件,轉為數值時為0;undefined是一個表示“未定義”的值,轉為數值時為NaN。
if (null) {} // false
if (undefined) {} // false
null == undefined // true
Number(null) // 0
3 + null // 3
Number(undefined) // NaN
3 + undefined // NaN
1.2 用法
null表示空值,即該處的值現在為空。呼叫函式時,如果某個引數無需設定任何值,就可以傳入null,表示該引數為空。比如,某個函式接受引擎丟擲的錯誤作為引數,如果執行過程中未出錯,那麼這個引數就會傳入null,表示未發生錯誤。
undefined表示“未定義”,例如:
// 變數聲明瞭,但沒有賦值 var i; i // undefined // 呼叫函式時,應該提供的引數沒有提供,該引數等於 undefined function f(x) { return x; } f() // undefined // 物件沒有賦值的屬性 var o = new Object(); o.p // undefined // 函式沒有返回值時,預設返回 undefined function f() {} f() // undefined
2 true和false
除了下面六個值會被轉為 false,其它值都被視為true。
- undefined
- null
- false
- 0
- NaN
- “”或’’ (空字串)
注意,空陣列和空物件,都是true
if ([]) // true
if ({}) // true