JavaScript undefined及null区别实例解析


Posted in Javascript onJuly 21, 2020

在JavaScript中,将一个变量赋值为undefined或null,老实说,几乎没区别。

var a = undefined;

var a = null;

上面代码中,a变量分别被赋值为undefined和null,这两种写法几乎等价。

undefined和null在if语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。

if (!undefined)
console.log('undefined is false');
// undefined is false

if (!null)
console.log('null is false');
// null is false

undefined == null
// true

上面代码说明,两者的行为是何等相似!

既然undefined和null的含义与用法都差不多,为什么要同时设置两个这样的值,这不是无端增加JavaScript的复杂度,令初学者困扰吗?Google公司开发的JavaScript语言的替代品Dart语言,就明确规定只有null,没有undefined!

Undefined

Undefined 类型只有一个值,即 undefined。

声明了变量,但未进行初始化时,这个变量的值就是 undefined,例如:

var message;
alert(message == undefined); // true

字面量 undefined 的主要目的是用于比较,而ECMAScript 3.0之前的版本中并没有规定这个值。引入这个值是为了正式区分空对象指针 与 未经初始化的变量。

Null

Null 类型是第二个只有一个值的类型,即 null。
从逻辑角度来看,null 表示一个空对象指针,因此,当使用 typeof 操作符检测 null 值时,会返回“object”,如下所示:

var car = null;
alert(typeof car); // "object"

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null,而不是其他值,这样一来只要直接检查null值就可以知道该变量是否保存了一个对象的引用,例如:

if (car != null) {
dosomthing
}

实际上, undefined值是派生自 null值的,因为他们在执行相等性测试(==)时要返回 true

alert(null == undefined) // true

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery DIV弹出效果实现代码
Jul 03 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
Jan 29 Javascript
js生成验证码并直接在前端判断
May 15 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
Oct 28 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
Node.js 异步异常的处理与domain模块解析
May 10 Javascript
ES6学习教程之Map的常用方法总结
Aug 03 Javascript
微信小程序云开发之模拟后台增删改查
May 16 Javascript
通过jQuery学习js类型判断的技巧
May 27 jQuery
vue 兄弟组件的信息传递的方法实例详解
Aug 30 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
JS实现碰撞检测效果
Mar 12 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
Jul 21 #Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
Jul 21 #Javascript
vue 实现tab切换保持数据状态
Jul 21 #Javascript
vue通过过滤器实现数据格式化
Jul 20 #Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 #Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
Jul 20 #Javascript
简单了解前端渐进式框架VUE
Jul 20 #Javascript
You might like
CodeIgniter中实现泛域名解析
2014/07/19 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
Django的信号机制详解
2017/05/05 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
自定义django admin model表单提交的例子
2019/08/23 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Python 私有化操作实例分析
2019/11/21 Python
Python中six模块基础用法
2019/12/08 Python
django数据模型on_delete, db_constraint的使用详解
2019/12/24 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
2019/12/31 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
2021/01/23 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
致接力运动员广播稿
2014/02/17 职场文书
事业单位分类改革实施方案
2014/03/21 职场文书
运动会演讲稿300字
2014/08/25 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
小学副班长竞选稿
2015/11/21 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript