ITPub博客

首页 > 应用开发 > Html/css > null 和 undefined 的区别

null 和 undefined 的区别

原创 Html/css 作者:ytweb 时间:2023-05-09 15:05:53 0 删除 编辑

一、概念

undefined 表示未定义,就是应该有值但是还没有赋值,连null的值都没有赋予


null 代表空值,空引用。


二、区别

1.  null 和 undefined 虽然值的结果是相等的,但是其所代表的语义是完全不一样的(==是相等的)。


  undefined 代表了某个变量完全不存在,在内存中完全能不存在这个标识符所指向的地址;


  null 代表了内存中是存在这个变量的,只是我在某些情况下需要把这个变量原本的值给覆盖了,将它设置为一个空。


2.  null 转为数值是 0 ;  undefined 转为数值是 NAN(not a number)。


3.  null 通过 typeof 判断类型的时候结果的输出是 object ; 而 undefined 的类型是 undefined 。


那么为什么 typeof null 是 object ?


null 和 undefined 都是js语言的基础数据类型, 都是原始值类型,但是 typeof null 是 object ,是因为不同的对象在底层都表现为二进制,在  JavaScript  中二进制前三位都为 0 的话会被判断为 object  类型,null 的二进制全部都为 0 ,前三位自然也是 0 ,所以执行 typeof 值会返回 object 。


4.  null 是 js 语言的关键字,是不允许用户用来作为标识符声明变量的,但是 undefined 可以,undefined 不是关键字。


在 node 环境中,我们声明的 undefined 会将原本的 undefined 覆盖的,但是在浏览器环境中不会,是因为浏览器中的 undefined 是直接被使用 Object.defineProperty 定义在了全局对象 window 上,默认就已经被配置成为了:值不可修改并且不可以被重新进行配置。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29187948/viewspace-2950973/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
关注互联网,专注网站技术分享,写自己想写的,说自己想说的.www.smddw.com

注册时间:2014-10-29

  • 博文量
    5
  • 访问量
    6461