1. 程式人生 > >JavaScript教程筆記(2)-關於null、undefined、true、false

JavaScript教程筆記(2)-關於null、undefined、true、false

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