淺談 null & undefined

1.初識 null & undefined

在javascript 中有兩種特別的基本數據類型 null undefined 初學者 對其也很模糊或者直接認爲它倆相等。

確實在判斷 是否爲真值時null 和undefined 也就是if語句中 它倆都是爲 false, 甚至有javascript

console.log( null == undefined )      // true

2. 深刻理解 undefined & null

在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

3. 用法

null: 表示 "沒有對象", 也就是不該該有值。
  1. 做爲函數參數, 表示該函數的參數不是對象
  2. 對象原型鏈的終點。 也是null .對原型鏈不熟悉的同窗能夠看看.
console.log(Object.prototype.__proto__ === null) // true
undefined: 表示 沒有值 缺乏值 就是此處應該有個值可是沒有定義
  1. 變量被申明瞭可是沒有被賦值函數

    var a ;
        console.log( a )   // undefined
        a = 2;
        console.log( a )   // 2
  2. 函數調用時,該提供的參數沒有提供。prototype

    function f(a) {
    console.log( a );           // undefined
    }
    f();
  3. 對象屬性沒有賦值, 該屬性爲undefinedcode

    var obj = new Person();
    console.log(obj.age);      // undefined
  4. 當函數沒有返回值時,默認返回undefined對象

    var f = fn();
    console.log( f );   // undefined

    第一次分享文章,若有錯誤請斧正😑...ip

    (完)原型鏈

相關文章
相關標籤/搜索