浅谈JavaScript中null和undefined


Posted in Javascript onJuly 09, 2015

先说null,它表示一个特殊值,常用来描述“空值”。对null执行typeof运算,结果返回字符串“object”,也就是说,可以将null认为是一个特殊的对象值,含义是“非对象”(感觉怪怪的)。实际上,通常认为null是它自有类型的唯一一个成员,它可以表示数字、字符串和对象是“无值”的。

JavaScript还有第二个值来表示值的空缺,就是undefined啦,用未定义的值表示更深层次的“空值”。undefined出现有4种情况:①变量声明但没有初始化时②要查询的对象属性或数组的元素不存在时③如果函数没有任何返回值,则返回undefined④引用没有提供实参的函数形参的值也只会得到undefined。

两者相同点:①正如前面所说,它们都是“假值”,也就是说JavaScript期望使用一个布尔值时,它们都会被转换成false;②它们两个都不包含任何属性和方法。

两者不同点:①null是JavaScript语言的关键字,而undefined是JavaScript预定义的全局变量,不是关键字。并且,在ECMAScript 3中,undefined是可读、可写的变量,可以给它赋任何值,这个错误在ECMAScript 5中做了修正,在该版本中undefined是只读的(看到网上说现在的浏览器基本上都是支持ECMAScript 5了,不知道为什么我在浏览器中给undefined赋值没有报错,只是并没有改变它的值);②执行typeof运算,null返回“object”字符串,undefined返回“undefined”字符串。

至于把null和undefined做比较,null == undefined 返回true,null === undefined 返回false。可以认为undefined是表示系统级的、出乎意料的或类似错误的值的空缺,而null是表示程序级的、正常的或在意料之中的值的空缺。如果想把它们赋值给变量或属性或者当做参数传入函数,最好选择使用null。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
Sep 29 Javascript
精心挑选的15款优秀jQuery 本特效插件和教程
Aug 06 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
解决ueditor jquery javascript 取值问题
Dec 30 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 Javascript
js密码强度检测
Jan 07 Javascript
详解iframe与frame的区别
Jan 13 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
May 04 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
详解基于React.js和Node.js的SSR实现方案
Mar 21 Javascript
Vue如何基于vue-i18n实现多国语言兼容
Jul 17 Javascript
兼容各大浏览器的JavaScript阻止事件冒泡代码
Jul 09 #Javascript
JavaScript包装对象使用详解
Jul 09 #Javascript
jquery实现表单验证并阻止非法提交
Jul 09 #Javascript
jQuery实现tab选项卡效果的方法
Jul 08 #Javascript
jQuery实现类似淘宝网图片放大效果的方法
Jul 08 #Javascript
javascript实现10个球随机运动、碰撞实例详解
Jul 08 #Javascript
详细分析JavaScript变量类型
Jul 08 #Javascript
You might like
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php下Memcached入门实例解析
2015/01/05 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
首页图片漂浮效果示例代码
2014/06/05 Javascript
jQuery Ajax 全局调用封装实例代码详解
2016/06/02 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
详解swipe使用及竖屏页面滚动方法
2018/06/28 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
JavaScript中import用法总结
2019/01/20 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
layui 阻止图片上传的实例(before方法)
2019/09/26 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
Vue清除定时器setInterval优化方案分享
2020/07/21 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
Python操作Excel之xlsx文件
2017/03/24 Python
python实现猜数字小游戏
2020/03/24 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
css3背景图片透明叠加属性cross-fade简介及用法实例
2013/01/08 HTML / CSS
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
怎样客观的做好自我评价
2013/12/28 职场文书
农民致富事迹材料
2014/01/23 职场文书
民事授权委托书范文
2014/08/02 职场文书
党支部评议意见
2015/06/02 职场文书
永不妥协观后感
2015/06/10 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL