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 相关文章推荐
In Javascript Class, how to call the prototype method.(three method)
Jan 09 Javascript
Display SQL Server Version Information
Jun 21 Javascript
javascript 文本框水印/占位符(watermark/placeholder)实现方法
Jan 15 Javascript
JavaScript实现QueryString获取GET参数的方法
Jul 02 Javascript
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
JS实现简易图片轮播效果的方法
Mar 25 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
javascript实现简易计算器的代码
May 31 Javascript
JS模拟实现方法重载示例
Aug 03 Javascript
JS实现贪吃蛇游戏
Nov 15 Javascript
Vue实现按钮级权限方案
Nov 21 Javascript
编写一个javascript元循环求值器的方法
Apr 14 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
php中iconv函数使用方法
2008/05/24 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
页面按钮禁用与解除禁用的方法
2014/02/19 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
js实现YouKu的漂亮搜索框效果
2015/08/19 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
2018/04/13 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
jquery.tagsinput.js实现记录checkbox勾选的顺序
2019/09/21 jQuery
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
2020/02/11 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现简单的计时器功能函数
2015/03/14 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
计算机网络毕业生自荐信
2013/10/01 职场文书
护理自荐信
2013/10/22 职场文书
大学活动邀请函
2014/01/28 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
降消项目实施方案
2014/03/30 职场文书
大学生演讲稿
2014/04/25 职场文书
法院干警四风问题个人对照检查材料思想汇报
2014/10/07 职场文书
社保转移委托书范本
2014/10/08 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
撤诉书怎么写
2015/05/19 职场文书
pnpm对npm及yarn降维打击详解
2022/08/05 Javascript