JavaScript undefined與null區別

admin發表於2018-08-16

undefined和null有點類似,都表示"沒有"的意思。

然而類似不等於相同,下面就通過程式碼例項總結一下它們兩者之間的區別。

一.資料型別區別:

undefined型別只有一個值,undefined。

null型別只有一個值,null。

也就是說undefined值和null值分別屬於不同的資料型別,並且這兩個資料型別都只有一個值。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
console.log(typeof undefined)
console.log(typeof null)

第一行輸出沒問題,正確列印undefined型別。

第二行列印結果為object,難道null不是null型別。

原因解釋:這是ES一個設計失誤,原本正確的結果應該是null,現在只能將錯就錯,或許以後版本會修正此問題。

二.存在場景不同:

(1).undefined通常是未初始化變數的值:

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼執行程式碼
let num;
var webName;
console.log(num);
console.log(webName);

兩個變數在宣告的時候都未曾賦值,列印結果都為undefined。

(2).null通常用來標識一個空物件:

比如當我們用document.getElementBy()方法獲取一個元素的時候,如果此元素不存在,那麼返回值就是null。

程式碼例項如下:

[HTML] 純文字檢視 複製程式碼執行程式碼
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<script type="text/javascript"> 
window.onload=function() { 
  let odiv=document.getElementById("shwo");
  alert(odiv);
} 
</script> 
</head> 
<body> 
<div id="show"></div>
</body> 
</html>

一不小心id值寫錯了,自然無法獲取到對應div物件,那麼odiv就被賦值為null。

程式碼執行效果截圖如下:

a:3:{s:3:\"pic\";s:43:\"portal/201808/16/000530pyyktsrg3x3j1k5z.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

更多資料型別相關知識參閱JavaScript 資料型別一章節。

相關文章