辨析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 相关文章推荐
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 Javascript
Jquery 的扩展方法总结
Oct 01 Javascript
jQuery实用函数用法总结
Aug 29 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
Jan 06 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
js实现类bootstrap模态框动画
Feb 07 Javascript
JS排序之选择排序详解
Apr 08 Javascript
clipboard.js在移动端复制失败的解决方法
Jun 13 Javascript
angularjs结合html5实现拖拽功能
Jun 25 Javascript
vue 中的keep-alive实例代码
Jul 20 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
Dec 13 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 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中SESSION使用中的一点经验总结
2012/03/30 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
vue实现文件上传读取及下载功能
2020/11/17 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
微信小程序实现多选框功能的实例代码
2020/06/24 Javascript
Python MySQLdb Linux下安装笔记
2015/05/09 Python
Windows下安装python MySQLdb遇到的问题及解决方法
2017/03/16 Python
python实现ID3决策树算法
2017/12/20 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
用Python在Excel里画出蒙娜丽莎的方法示例
2020/04/28 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
餐饮业会计岗位职责
2013/12/19 职场文书
给物业的表扬信
2014/01/21 职场文书
初中军训感想300字
2014/03/05 职场文书
小区文明倡议书
2014/05/16 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
找规律教学反思
2016/02/23 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
Android Studio实现简易进制转换计算器
2022/05/20 Java/Android