zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    读书思维导图
    19/12/19 最近计划
    搭建自己的终极框架
    Win10下安装erl和RabbitMQ踩坑【版本不兼容】
    这里的博客不再更新了,有兴趣的可以转移到我的新博客地址 https://spacesec.github.io/
    最新最全的sqlmap命令中文详解以及插件功能详解[最全]
    Listary:放弃笨拙且丑陋的文件查找系统吧
    自己写一个破解zip加密文件的脚本
    分享一下第一次和别人开发项目的心得
    如何进行git 的push操作
  • 原文地址:https://www.cnblogs.com/haishen/p/10718715.html
Copyright © 2011-2022 走看看