在javascript 中有兩種特別的基本數據類型 null undefined 初學者 對其也很模糊或者直接認爲它倆相等。
確實在判斷 是否爲真值時null 和undefined 也就是if語句中 它倆都是爲 false, 甚至有javascript
console.log( null == undefined ) // true
在js中咱們常常用一個 typeof來檢測一個變量的類型, 並且返回的是一個字符串類型。看下面的例子java
console.log( null === undefined ) // true? X
答案是否認的. 咱們試着用 typeof 打印一下 null 和undefinedgit
console.log( typeof null) // object console.log( typeof null === "object") // true console.log( typeof undefined ) // undefined console.log( typeof undefined === "undefined" ) // true undefined
咱們發現 null 打印的是 object對象 而 undefined 打印的是undefined. (對於null 打印出object 有興趣的能夠去看看《你不知道的javaScript》中卷 第一章)github
null: 表示 "沒有對象", 也就是不該該有值。
console.log(Object.prototype.__proto__ === null) // true
undefined: 表示 沒有值 缺乏值 就是此處應該有個值可是沒有定義
變量被申明瞭可是沒有被賦值函數
var a ; console.log( a ) // undefined a = 2; console.log( a ) // 2
函數調用時,該提供的參數沒有提供。prototype
function f(a) { console.log( a ); // undefined } f();
對象屬性沒有賦值, 該屬性爲undefinedcode
var obj = new Person(); console.log(obj.age); // undefined
當函數沒有返回值時,默認返回undefined對象
var f = fn(); console.log( f ); // undefined
第一次分享文章,若有錯誤請斧正😑...ip
(完)原型鏈