这两个值几乎没有什么区别,我们都知道这两个值都表示无的意思,他们的历史也简单的说一下吧

原来,这与JavaScript的历史有关。1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示"无"的值。根据C语言的传统,null被设计成可以自动转为0。

Number(null)
// 05 + null
// 5

但是,JavaScript的设计者Brendan Eich,觉得这样做还不够,有两个原因。
首先,null像在Java里一样,被当成一个对象。但是,JavaScript的数据类型分成原始类型(primitive)和合成类型(complex)两大类,Brendan Eich觉得表示"无"的值最好不是对象。
其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。
Brendan Eich觉得,如果null自动转为0,很不容易发现错误。因此,Brendan Eich又设计了一个undefined。

最初设计,JavaScript的最初版本是这样区分的:null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

从这一点就可以知道两者之间的区别了,下面例子足以说明

1 + undefined // NaN , undefined是一个表示"无"的原始值,转为数值时为NaN
1 + null // 1 , null是一个表示"无"的对象,转为数值时为0;

两者其他的使用以及判定几乎没有区别

这里稍稍记录一下null和undefined相关推荐

  1. 解剖JavaScript中的null和undefined

    在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...

  2. js在post后台接口的时候,一行代码完成删除对象中所有值为null、undefined或为空字符串““的属性

    var d= {a: 1,b: null,c: 3,d: undefined };Object.keys(d).forEach(k=>d[k]==null&&delete d[k ...

  3. JS中的null和undefined,undefined为啥用void 0代替?

    起因   某天,在看某位同学的js代码,代码中发现了一个奇怪的东西 void 0,虽然第一眼看不懂这是什么东西,但是根据上下文,这里应该是想判断是否等于undefined,为什么要这样写的,有什么渊源 ...

  4. 有没有办法检查`null`和`undefined`?

    本文翻译自:Is there a way to check for both `null` and `undefined`? Since TypeScript is strongly-typed, s ...

  5. JavaScript检查null与undefined以及==和===之间的差异

    如何检查变量是否为null或undefined并且null和undefined什么区别? ==和===什么区别(很难在Google上搜索" ===")? #1楼 区别是微妙的. 在 ...

  6. 是否有标准函数检查JavaScript中的null,undefined或空白变量?

    是否有通用的JavaScript函数可检查变量是否具有值并确保其undefined或为null ? 我有以下代码,但是不确定是否能涵盖所有情况: function isEmpty(val){retur ...

  7. ECMAScript——基本数据类型之null和undefined

    null属于当前的值为空,以后会给其赋值的  typeof null --> "object" undefined属于非人为设置,意料之外的没有 typeof undefin ...

  8. 聊一聊js中的null、undefined与NaN

    零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理 ...

  9. 关于null和undefined

    null和undefined都是一种类型..typeof查看变量类型.不要为该函数迷惑..因为他只是看上去官方! 见http://www.cnblogs.com/zhepama/articles/30 ...

最新文章

  1. 公众号群发文章支持添加小程序
  2. react源码分析-setState分析
  3. ceph13 快速编译 v13.2.4 --2019_8
  4. python矩阵左除_matlab学习笔记
  5. C和汇编混合编程---do while
  6. 利用python处理中国地面气候资料日值数据集(V3.0)
  7. 计算机程序设计基础试题与答案,2018年4月自考计算机基础与程序设计02275试题及答案.doc...
  8. java ssm框架调用微信,微信小程序实现前后台交互(后台使用ssm框架)
  9. .net 创建属于自己的log类
  10. tf.contrib.rnn.core_rnn_cell.BasicLSTMCell should be replaced by tf.contrib.rnn.BasicLSTMCell.
  11. 使用EXCEL进行线性回归
  12. MaxScript学习 | 创建石头
  13. 在抖音做电商:是赚是赔,往往取决于几分钱的算计
  14. python 折线图标签_如何使用python绘制折线图?
  15. 面向对象期末第三阶段
  16. 西瓜书——多元线性回归(知识点:多元实值函数凹凸性的证明)
  17. TIA博途S7-1200中实现高低字节或高低字调换的几种方法介绍
  18. 最新前端体系学习路径推荐(内附免费资料)
  19. linux查看patch文件,linux – 如何知道patch命令是否正常工作?
  20. Python数据分析从入门到精通视频教程

热门文章

  1. 如何用IDEA创建SpringBoot项目
  2. 人脸检测之MTCNN:测试代码理解
  3. 运动轨迹-GPS数据、经纬度转换
  4. switchresx卸载_SwitchResX for Mac使用过程启动问题解答
  5. 什么是长尾关键词?长尾关键词有什么价值?
  6. 仿一号店APP商品分类效果开发Android版本
  7. ubuntu:如何找到当前系统版本下对应的软件包下载地址
  8. 《炬丰科技-半导体工艺》清洗含有介电膜的半导体晶片的方法
  9. 5、【接口测试用例与ui功能测试用例有什么区别?】
  10. 软件测试实际操作(降龙之术)