这里稍稍记录一下null和undefined
这两个值几乎没有什么区别,我们都知道这两个值都表示无的意思,他们的历史也简单的说一下吧
原来,这与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相关推荐
- 解剖JavaScript中的null和undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理.于是,细想之后,写下本文,请各位 ...
- 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 ...
- JS中的null和undefined,undefined为啥用void 0代替?
起因 某天,在看某位同学的js代码,代码中发现了一个奇怪的东西 void 0,虽然第一眼看不懂这是什么东西,但是根据上下文,这里应该是想判断是否等于undefined,为什么要这样写的,有什么渊源 ...
- 有没有办法检查`null`和`undefined`?
本文翻译自:Is there a way to check for both `null` and `undefined`? Since TypeScript is strongly-typed, s ...
- JavaScript检查null与undefined以及==和===之间的差异
如何检查变量是否为null或undefined并且null和undefined什么区别? ==和===什么区别(很难在Google上搜索" ===")? #1楼 区别是微妙的. 在 ...
- 是否有标准函数检查JavaScript中的null,undefined或空白变量?
是否有通用的JavaScript函数可检查变量是否具有值并确保其undefined或为null ? 我有以下代码,但是不确定是否能涵盖所有情况: function isEmpty(val){retur ...
- ECMAScript——基本数据类型之null和undefined
null属于当前的值为空,以后会给其赋值的 typeof null --> "object" undefined属于非人为设置,意料之外的没有 typeof undefin ...
- 聊一聊js中的null、undefined与NaN
零.寒暄 翻翻自己的博客,上一篇竟然是六月26号的,说好的更新呢?回顾刚刚过去的这个七月,整天都是公司的入职培训加上自己的小论文,每天奋战到凌晨1点多,这是要挂的节奏啊!但是不论怎么说,自己的时间管理 ...
- 关于null和undefined
null和undefined都是一种类型..typeof查看变量类型.不要为该函数迷惑..因为他只是看上去官方! 见http://www.cnblogs.com/zhepama/articles/30 ...
最新文章
- 公众号群发文章支持添加小程序
- react源码分析-setState分析
- ceph13 快速编译 v13.2.4 --2019_8
- python矩阵左除_matlab学习笔记
- C和汇编混合编程---do while
- 利用python处理中国地面气候资料日值数据集(V3.0)
- 计算机程序设计基础试题与答案,2018年4月自考计算机基础与程序设计02275试题及答案.doc...
- java ssm框架调用微信,微信小程序实现前后台交互(后台使用ssm框架)
- .net 创建属于自己的log类
- tf.contrib.rnn.core_rnn_cell.BasicLSTMCell should be replaced by tf.contrib.rnn.BasicLSTMCell.
- 使用EXCEL进行线性回归
- MaxScript学习 | 创建石头
- 在抖音做电商:是赚是赔,往往取决于几分钱的算计
- python 折线图标签_如何使用python绘制折线图?
- 面向对象期末第三阶段
- 西瓜书——多元线性回归(知识点:多元实值函数凹凸性的证明)
- TIA博途S7-1200中实现高低字节或高低字调换的几种方法介绍
- 最新前端体系学习路径推荐(内附免费资料)
- linux查看patch文件,linux – 如何知道patch命令是否正常工作?
- Python数据分析从入门到精通视频教程