辨析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 相关文章推荐
extjs 04_grid 单击事件新发现
Nov 27 Javascript
基于JQuery的列表拖动排序实现代码
Oct 01 Javascript
JS验证身份证有效性示例
Oct 11 Javascript
在JavaScript中判断整型的N种方法示例介绍
Jun 18 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
js正则表达式replace替换变量方法
May 21 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
jQuery实现产品对比功能附源码下载
Aug 09 Javascript
用director.js实现前端路由使用实例
Jan 27 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
Aug 17 Javascript
requireJS模块化实现返回顶部功能的方法详解
Oct 16 Javascript
用vue封装插件并发布到npm的方法步骤
Oct 18 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 select,radio和checkbox默认选择的实现方法
2010/05/15 PHP
怎样给PHP源代码加密?PHP二进制加密与解密的解决办法
2013/04/22 PHP
深入浅出php socket编程
2015/05/13 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
浅谈Javascript 执行顺序
2013/12/18 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
浅谈Python 集合(set)类型的操作——并交差
2016/06/30 Python
python多任务及返回值的处理方法
2019/01/22 Python
详解python中sort排序使用
2019/03/23 Python
python中return的返回和执行实例
2019/12/24 Python
详解Python中的文件操作
2021/01/14 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
员工年终演讲稿
2014/01/03 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
体育之星事迹材料
2014/05/11 职场文书
施工安全汇报材料
2014/08/17 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
新学期家长寄语2016
2015/12/03 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python