zoukankan      html  css  js  c++  java
  • Javascript数据类型——undefined和null的异同

    Javascript的基本数据类型中有undefined和null两种只有一个值得特殊数据类型。其中undefined表示未被初始化,不是为声明。而null表示一个空对象指针,而这也是使用typeof检测null返回”object”的原因。

    undefined表达的是通过var声明了变量,但没有显示的赋值(由此可以推论,Javascript的变量默认值为undefined)。然而对声明未赋值的变量未被声明的变量执行typeof操作返回值均是”undefined”。就这点来讲,我们在声明变量的时候最好对其显示的赋值,这样当typeof返回”undefined”时,能明确知道这个变量时未声明的,不是未赋值的。

    //undefined 一些比较
    var name;
    alert(name);     //undefined
    alert((typeof name ); // undefined
    alert(name == undefined ) ; // true
    alert(name ===undefined); // true
    //未声明age变量
    alert(age);        //产生异常
    alert(typeof age);     //undefined
    alert(age == undefined); //  产生异常
    alert(age === undefined); // 产生异常

    null,空指针对象。由于Javascript是弱类型的,在变量的生存周期中可以任意改变其类型。对于一个准备保存对象的变量来说,应该初始化为null,这样检测null就可以确认这个对象是否已经引用了一个对象。

    var people = null;
    alert(people == null) ;     //true
    alert(people === null) ;    //true
    alert(typeof people) ;    //object

    最后一点特殊的,undefined派生自null,因此null和undefined进行相等测试结果是true。这里不讨论==和===的区别,下面这个结果只表示,null和undefined不是完全相同的值。:

    alert(null == undefined);    //true
    alert(null === undefined);     //false

    在使用上,null只表示空指针对象,undefined可以表示任意显示未初始化的变量。只要用于保存对象的变量都应明确初始化为null。

  • 相关阅读:
    Solution -「HEOI/TJOI 2016」「洛谷 P2824」排序
    Solution -「国家集训队」「洛谷 P2839」Middle
    Solution -「CTSC 2018」「洛谷 P4602」混合果汁
    Solution -「CF 793G」Oleg and Chess
    Solution -「AGC 019F」「AT 2705」Yes or No
    Solution -「AGC 013E」「AT 2371」Placing Squares
    使用Spock 单元测试
    Sentinel 熔断等指标如何统计以及如何判断熔断点
    牛客多校第五场自闭
    (单调栈)Largest Rectangle in a Histogram
  • 原文地址:https://www.cnblogs.com/jason0529/p/3808829.html
Copyright © 2011-2022 走看看