• null 和 undefined 的区别


    null:Null类型,代表 “空值”,代表一个空对象指针,使用typeof运算得到 “object” ,所以可以认为它是一个特殊的对象值。

    undefined:Undefined类型,当一个声明了一个变量未初始化时,得到的就是 undefined。

    null是javascript的关键字,可以认为是对象类型,它是一个空对象指针,和其他语言一样都代表“空值”,不过undefined却是javascript才有的。undefined是在ECMAScript第三版引入的,为了区分指针对象和未初始化的变量,它是一个预定义的全局变量。没有返回值的函数返回为undefined,没有实参的形参也是undefined。

    javascript权威指南:null 和 undefined 都表示 “值的空缺”,你可以认为 undefined 是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。

    javascript高级程序设计:在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。unll值则是表示空对象指针。

    typeof undefined  //  undefined

    typeof null     // object

    null == undefined  // true

    ECMAScript认为 undefined 是从 null 中派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那么可以使用下面的方法:

    1、 null === undefined  // false

    2、 typeof null === typeof undefined  // false

    采坑点:

      undefined + 6   // NaN

      null + 6     // 6

    根据C语言的传统,null被设计成可以自动转为0

    目前的用法

    null表示 “没有对象”,即该处不应该有值。

    (1)作为函数的参数,表示该函数的参数不是对象。

    (2)作为对象原型链的终点。

    undefined表示“缺少值”,就是此处应该有一个值,但是还没有定义。

    (1)变量被声明了,但没有赋值时,就等于undefined。

    (2)调用函数时,应该提供的参数没有提供,该参数就等于undefined。

    (3)对象没有赋值的属性,该属性的值为undefined。

    (4)函数没有返回值时,默认返回undefined。

    使用实例

    转化的时候,undefined为NaN,null为0.

    Number(undefined)  // NaN

    Number(undefined + 10)  //NaN

    Number(null)  // 0

    Number(10 + null)  // 10

    undefined === null  //false

    undefined == null  //true

  • 相关阅读:
    再起航,我的学习笔记之JavaScript设计模式13(装饰者模式)
    在 ASP.NET Core 中执行租户服务
    再起航,我的学习笔记之JavaScript设计模式12(适配器模式)
    再起航,我的学习笔记之JavaScript设计模式11(外观模式)
    再起航,我的学习笔记之JavaScript设计模式10(单例模式)
    Entity Framework Core 2.0 全局查询过滤器
    再起航,我的学习笔记之JavaScript设计模式09(原型模式)
    APScheduler
    Gvim打造python编辑器,附自己的配置文件
    Python通过logging记录日志并应用coloredlogs在控制台输出有色字体
  • 原文地址:https://www.cnblogs.com/haishen/p/10718715.html
Copyright © 2020-2023  润新知