1. 程式人生 > >js中null和undefined的區別

js中null和undefined的區別

JavaScript有兩個特殊的原始值:null和undefined,它們不是數字、字串和布林值。它們通常分別代表了各自特殊型別的唯一的成員,也就說是它自有型別的唯一的一個成員。從技術上講,只有Javascript物件才能擁有方法,數字、字串和布林值都可以擁有自己的方法,但是null和undefined卻無法擁有方法的值。

null是JavaScript的關鍵字,表示一個特殊值,在IE5.5及其以上版本瀏覽器,undefined被定義為全域性變數,作為一個關鍵字被JavaScript支援。

null和undefined都是表示“值的空缺”,用相等運算子進行比較,認為它們是相等的,在if語句中null和undefined都會轉為false,可見 null和undefined非常類似,但是我們可以用全等運算子(===)和typeof運算子來區分它們的異同


這裡寫圖片描述

如果一個變數被宣告,但是還未被賦值,那麼會返回undefined,可以理解為該變數缺少值,用未定義的值表示更深層次的“空值”,它是變數的一種取值,表示變數還沒有初始化
這裡寫圖片描述

值undefined不同於未定義的值,我們用typeof運算子可以區分它們之間的不同,如:
這裡寫圖片描述
對於未宣告的變數b來說,如果使用其他運算子來對其進行計算的話,都會引發錯誤,因為其他運算子只能夠用於以及宣告的變數,像下面這樣寫提示未定義的錯誤資訊:
這裡寫圖片描述

如果要查詢物件屬性或陣列元素的值時,返回undefined,則說明這個屬性或者元素不存在。

如果函式沒有返回任何值,則預設返回undefined,如:
這裡寫圖片描述

引用沒有提供實參的函式形參的值時候也會得到undefined,undefined是預定義的全域性變數,它的值表示“未定義”。