javascript: null或undefined的區別及判斷方法


1.在JS中,如果一個變量被聲明了,但沒賦值,則會自動被賦值為undefined; null可以被賦值給一個變量。

  • undefined: Undefined類型,當聲明了一個變量未初始化時,得到的就是undefined, 使用typeof運算得到“undefined”
  • null: Null類型,表示空值,使用typeof運算得到“object”

總結:如果要嚴格區分是null或者undefined請使用===來區別(見最后的黃色區塊);如果只是籠統的想判斷為null或者undefined,只要簡單用==null(見下面寫法一)或者!null為真來判斷(見下面寫法二)

1)舉例如下:

   var firstName;
    var lastName = null;
    //隨便弄個不存在的DOM如document.getElementById("phone"),返回值是NULL
    var phone = document.getElementById("phone");

    console.log("firstName: " + firstName);//返回undefined
    console.log("lastName: " + lastName);// 返回null
    console.log("phone: " + phone);//返回null

    console.log("typeof firstName: " + typeof firstName);//返回undefined
    console.log("typeof lastName: " + typeof lastName);//返回object
    console.log("typeof phone: " + typeof phone);//返回object

    console.log(null == undefined)//返回true
    console.log(null === undefined)//返回false



    //因為null==undefined,所以可以直接用null(或undefined)來同時判斷undefined或null值
    //寫法一,用==null來判斷是否為undefined或null值,如下:
    console.log("寫法一:用==null來判斷");
    if (firstName == null) {
        console.log('變量firstName為undefined或者null.');
    }
    if (lastName == null) {
        console.log('變量lastName為undefined或者null.');
    }
    if (phone == null) {
        console.log('變量phone為undefined或者null.');
    }
    //應該也可以用==undefined來判斷吧,只是不常用?
    if (firstName == undefined) {
        console.log('變量firstName為undefined或者null.');
    }
    if (lastName == undefined) {
        console.log('變量lastName為undefined或者null.');
    }
    //寫法二,因為!null為真,所以也可以簡單的把判斷語句改為!null寫法來同時判斷undefined或null值
    console.log("寫法二:用!null為真判斷");
    if (!firstName) {
        console.log('變量firstName為undefined或者null.');
    }
    if (!lastName) {
        console.log('變量lastName為undefined或者null.');
    }
    if (!phone) {
        console.log('變量phone為undefined或者null.');
    }
    //如果要嚴格區分是null或者是undefined,用===來判斷,例子如下:
    if (typeof phone === "undefined") { console.log(phone); console.log('變量phone為undefined.'); } else if (phone === null) { console.log('變量phone為null.'); }

測試結果如下:

 

 

2)以下關於null 和undefined 的區別(摘自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/null)

 

 


免責聲明!

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



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