辨析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 confirm选择判断
Oct 18 Javascript
JavaScript 调试器简介
Feb 21 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
Jul 01 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
JS Attribute属性操作详解
May 19 Javascript
jQuery中animate的几种用法与注意事项
Dec 12 Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
JavaScript内存泄漏的处理方式
Nov 20 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
弱类型语言javascript中 a,b 的运算实例小结
Aug 07 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
Zend引擎的发展 [15]
2006/10/09 PHP
Apache2 httpd.conf 中文版
2006/12/06 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
php和html的区别点详细总结
2019/09/24 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
js监听表单value的修改同步问题,跨浏览器支持
2009/12/31 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
JavaScript Title、alt提示(Tips)实现源码解读
2010/12/12 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
jquery实现input框获取焦点的方法
2017/02/06 Javascript
原生js实现放大镜
2017/02/20 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
vuex的简单使用教程
2018/02/02 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python3实现短网址和数字相互转换的方法
2015/04/28 Python
详解在Python的Django框架中创建模板库的方法
2015/07/20 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
python魔法方法-属性访问控制详解
2016/07/25 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
Python之变量类型和if判断方式
2020/05/05 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
过滤器的用法
2013/10/08 面试题
仓库门卫岗位职责
2013/12/22 职场文书
实施意见格式范本
2015/06/05 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python
Python绘制散乱的点构成的图的方法
2022/04/21 Python