zoukankan      html  css  js  c++  java
  • 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版)第三章

  • 相关阅读:
    量化交易指标函数整理(持续更新)
    Python之基础练习代码
    根据缺口的模式选股买股票,python 学习代码
    凯利公式
    测试
    AngularJS开发经验
    Hibernate Tools插件的使用
    weblogic配置oracle数据源
    eclipse配置weblogic服务器
    java算法-数学之美二
  • 原文地址:https://www.cnblogs.com/qqandfqr/p/6433107.html
Copyright © 2011-2022 走看看