JavaScript中的null和undefined


1.概述

  null和undefined屬於js中兩種不同的基本數據類型,都可以表示“沒有”,含義非常相似。將一個變量賦值為undefined或null,老實說,語法效果幾乎沒區別。並且在if語句的判斷條件中,它們都會自動轉為false,相等運算符(==)甚至直接報告兩者相等

var a = null; var b = undefined; if (!a) { console.log('a is false'); }//a is false
if (!b) { console.log('b is false'); }//b is false
if (null == undefined) { console.log('null == undefined is true') }//null == undefined is true

  null是一個表示“空”的對象,轉為數值時為0;undefined是一個表示"此處無定義"的原始值,轉為數值時為NaN。

Number(null); // 0
null + 9; // 9
Number(undefined); // NaN
undefined + 9; // NaN

2.用法和含義

  對於null和undefined,大致可以像下面這樣理解。null表示空值,即該處的值現在為空。調用函數時,某個參數未設置任何值,這時就可以傳入null,表示該參數為空。比如,某個函數接受引擎拋出的錯誤作為參數,如果運行過程中未出錯,那么這個參數就會傳入null,表示未發生錯誤。undefined表示“未定義”,下面是返回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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM