JavaScript 基本類型值-Undefined、Null、Boolean


▓▓▓▓▓▓ 大致介紹

  ECMAScript中有5中簡單的數據類型(也稱為基本數據類型):Undefined、Null、Boolean、Number、String。

  

▓▓▓▓▓▓ Undefined

  Undefined時全局變量的一個屬性,它只有一個值即:undefined。當使用var聲明變量但未對其初始化時,這個變量的值就是undefined。

        var test;
        console.log(test);    //undefined

 

  對於未聲明過的變量只能進行一種操作,即typeof檢測其數據類型

        //var a 
        console.log(typeof a); //undefined

 

  undefined通常出現的場景:

    1、已經聲明但未賦值的變量

    2、typeof檢測未聲明的變量的數據類型

    3、沒有返回值的函數的執行結果

    4、函數沒有傳入參數

    5、void(expression)

        //1、
        var test;
        console.log(test);    //undefined

        //2、
        //var a 
        console.log(typeof a); //undefined

        //3、
        function f(){}
        console.log(f()); //undefined

        //4、
        function f(x){
            return x;
        }
        console.log(f()); //undefined

        //5、
        console.log(void(0)); //undefined

 

  嚴格相等和undefined

  可以使用嚴格相等和不相等來檢測一個變量是否擁有值

         var x ;

        if(x === undefined){
            console.log(1);
        }else{
            console.log(2);
        }

  注意:這里要用嚴格相等,因為 null == undefined

 

  void操作符和undefined

  可以用void操作符來代替undefined

         var x ;

        if(x === void(0)){
            console.log(1);
        }else{
            console.log(2);
        }

 

▓▓▓▓▓▓ Null

  Null類型是第二個只有一個值的數據類型,這個特殊的值是null。從邏輯的角度看,null值表示一個空對象的指針。null常被放在期望一個對象,但不引用任何對象的參數位置。

        console.log(document.getElementById('ol')); //null

 

 注意:

        console.log(typeof null); //object

  產生這樣的原因就如前面所說,null值表示一個空對象的指針,用typeof檢測數據類型,肯定就是object

  從最底層講不同的對象在底層都表示為二進制,在javascript中二進制前三位都為0會被判斷為object類型,null的二進制表示是全0,所以執行typeof時返回'object'

 

  null和undefined

  null和undefined時不同的,但是他們都表示空值,null表示“空值”,undefined表示“未定義”。

        typeof null        // object 
        typeof undefined   // undefined
        null === undefined // false
        null  == undefined // true
        null === null // true
        null == null // true
        !null //true
        isNaN(1 + null) // false
        isNaN(1 + undefined) // true

 

▓▓▓▓▓▓ Boolean

  Boolean類型是ECMAScript中使用最多的一種類型,該類型只有兩個字面值:true和false

  注意:Boolean類型的字面值true和false是區分大小寫的

  雖然Boolean類型的字面值只有兩個,但是ECMAScript中所有的類型的值都有與這兩個Boolean值等價的值。要將一個值轉換為對應的Boolean值,可以調用轉型函數Boolean()

        var message = 'hello world';
        var messageBoolean = Boolean(message);
        console.log(messageBoolean); //true

 

  轉換表:

字符串 數字 布爾值
undefined "undefined" NaN false
null  “null”  0  false
true  “true”  1  
false  “false”  0  
""空字符串    0  
"1.2" 非空,數字    1.2  
"o" 非空,非數字      
 0  "0"    false
 -0 "0"    false 
 NaN  "NaN"   false 
 infinity  "infinity"   true 
-infinity   "infinity"   true 

 

參考資料:

  https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Null

  http://www.cnblogs.com/xiaohuochai/p/5665637.html

  JavaScript高級程序設計(第3版)第三章


免責聲明!

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



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