辨析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 相关文章推荐
java script编程起步(第三课)
Jan 10 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
js图片向右一张张滚动效果实例代码
Nov 23 Javascript
Javascript编程之继承实例汇总
Nov 28 Javascript
javascript阻止事件冒泡和浏览器的默认行为
Jan 21 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
Apr 26 jQuery
node内置调试方法总结
Feb 22 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
Dec 03 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
vue数据更新UI不刷新显示的解决办法
Aug 06 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 Javascript
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加速 eAccelerator配置和使用指南
2009/06/05 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
javascript 闭包详解
2015/02/15 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
2016/09/14 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
layerUI下的绑定事件实例代码
2018/08/17 Javascript
node基于async/await对mysql进行封装
2019/06/20 Javascript
layui 解决form表单点击无反应的问题
2019/10/25 Javascript
Python中使用dom模块生成XML文件示例
2015/04/05 Python
python常见数制转换实例分析
2015/05/09 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python 数据处理库 pandas进阶教程
2018/04/21 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
给ubuntu18安装python3.7的详细教程
2020/06/08 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
python Xpath语法的使用
2020/11/26 Python
写给女朋友的道歉信
2014/01/12 职场文书
班班通校本培训方案
2014/03/12 职场文书
出生证明公证书
2014/04/09 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
基层工作经验证明样本
2014/11/16 职场文书
个人党性分析材料
2014/12/19 职场文书
2014年党小组工作总结
2014/12/20 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫