辨析JavaScript中的Undefined类型与null类型


Posted in Javascript onMay 26, 2016

Undefined
表示变量已声明,但未被初始化。需要注意的是当使用typeof操作符判断数据类型时,未被声明的变量和未初始化的变量返回的值都为undefined

var message;
console.log(typeof message);//undefined
console.log(typeof age);//undefined

null:表示一个空对象指针
使用typeof操作符返回的值是'object',需要注意的是,undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true。

console.log(null == undefined);//true

undefined与null的区别
(1)undefined表示一个变量没有被声明,或者被声明了但没有被赋值
(2)null是一个表示“没有值”的值
(3)Javascript将未赋值的变量默认值设为undefined
(4)Javascript从来不会将变量设为null。它是用来让程序员表明某个用var声明的变量时没有值的。
(5)undefined不是一个有效的JSON,而null是
(6)undefined的类型(typeof)是undefined,null的类型(typeof)是object.

PS:它们都是基本类型
他们都是falsy (Boolean(undefined) // false, Boolean(null) // false)
你可以这样判断一个变量是否是undefined

typeof variable === "undefined"

你可以这样判断一个变量是否是null

variable === null

双等号比较时它们相等,但三等号比较时不相等

null == undefined // true
 null === undefined // false
Javascript 相关文章推荐
JavaScript 中的日期和时间及表示标准介绍
Aug 21 Javascript
js简单实现交换Li的值
May 22 Javascript
input:checkbox多选框实现单选效果跟radio一样
Jun 16 Javascript
百度地图自定义控件分享
Mar 04 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
Jun 23 Javascript
浅谈angular懒加载的一些坑
Aug 20 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
jquery dataTable 后台加载数据并分页实例代码
Jun 07 jQuery
Angular2环境搭建具体操作步骤(推荐)
Aug 04 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
Jan 22 Javascript
Vue获取微博授权URL代码实例
Nov 04 Javascript
详细聊聊vue中组件的props属性
Nov 02 Vue.js
JavaScript数组的栈方法与队列方法详解
May 26 #Javascript
详解JavaScript中this关键字的用法
May 26 #Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 #Javascript
js操作数据库实现注册和登陆的简单实例
May 26 #Javascript
js判断主流浏览器类型和版本号的简单实现代码
May 26 #Javascript
轻松掌握JavaScript中的Math object数学对象
May 26 #Javascript
JS表格组件神器bootstrap table详解(强化版)
May 26 #Javascript
You might like
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
PHP全概率运算函数(优化版) Webgame开发必备
2011/07/04 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
纯javascript移动优先的幻灯片效果
2015/11/02 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
JS中sort函数排序用法实例分析
2016/06/16 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
2015/12/08 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
Python能做什么
2020/06/02 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
培训主管岗位职责
2014/02/01 职场文书
教师开学感言
2014/02/14 职场文书
电钳工人个人求职信
2014/05/10 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
python四种出行路线规划的实现
2021/06/23 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL
浅谈JavaScript浅拷贝和深拷贝
2021/11/07 Javascript
python获取带有返回值的多线程
2022/05/02 Python
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python