首页 > web前端 > js教程 > 正文

javascript中的null和undefined用法区别实例详解

伊谢尔伦
发布: 2017-07-18 14:07:14
原创
1816人浏览过

判断undefined和null: 

<span style="font-size: small;">var tmp = undefined; 
if (tmp== undefined) 
{ 
alert("null or undefined"); 
} </span>
登录后复制
<span style="font-size: small;">var tmp = undefined; 
if (tmp== null) 
{ 
alert("null or undefined"); 
}</span>
登录后复制

说明:null==undefined 

但是: 
null !== undefined 
那么这两者到底有啥区别呢? 
null 
这是一个对象,但是为空。因为是对象,所以 typeof null 返回 'object' 。 
null 是 JavaScript 保留关键字。 
null 参与数值运算时其值会自动转换为 0 ,因此,下列表达式计算后会得到正确的数值: 
表达式:123 + null结果值:123 
表达式:123 * null结果值:0 
undefined 
undefined是全局对象(window)的一个特殊属性,其值是未定义的。但 typeof undefined 返回 'undefined' 。 
虽然undefined是有特殊含义的,但它确实是一个属性,而且是全局对象(window)的属性。

alert('undefined' in window);//输出:true 
var anObj = {}; 
alert('undefined' in anObj); //输出:false
登录后复制

从中可以看出,undefined是window对象的一个属性,但却不是anObj对象的一个属性。 
注意:尽管undefined是有特殊含义的属性,但却不是JavaScript的保留关键字。 
undefined参与任何数值计算时,其结果一定是NaN。 
随便说一下,NaN是全局对象(window)的另一个特殊属性,Infinity也是。这些特殊属性都不是JavaScript的保留关键字! 

提高undefined性能 
当我们在程序中使用undefined值时,实际上使用的是window对象的undefined属性。 
同样,当我们定义一个变量但未赋予其初始值,例如: 
var aValue; 
这时,JavaScript在所谓的预编译时会将其初始值设置为对window.undefined属性的引用, 
于是,当我们将一个变量或值与undefined比较时,实际上是与window对象的undefined属性比较。这个比较过程中,JavaScript会搜索window对象名叫‘undefined'的属性,然后再比较两个操作数的引用指针是否相同。 
由于window对象的属性值是非常多的,在每一次与undefined的比较中,搜索window对象的undefined属性都会花费时 间。在需要频繁与undefined进行比较的函数中,这可能会是一个性能问题点。

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版
动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

动态WEB网站中的PHP和MySQL详细反映实际程序的需求,仔细地探讨外部数据的验证(例如信用卡卡号的格式)、用户登录以及如何使用模板建立网页的标准外观。动态WEB网站中的PHP和MySQL的内容不仅仅是这些。书中还提到如何串联JavaScript与PHP让用户操作时更快、更方便。还有正确处理用户输入错误的方法,让网站看起来更专业。另外还引入大量来自PEAR外挂函数库的强大功能,对常用的、强大的包

动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版 508
查看详情 动态WEB网站中的PHP和MySQL:直观的QuickPro指南第2版

立即学习Java免费学习笔记(深入)”;

其中,定义undefined局部变量时,其初始值会是对window.undefined属性值的引用。新定义的局部undefined变 量存在与该函数的作用域上。在随后的比较操作中,JavaScript代码的书写方式没有任何的改变,但比较速度却很快。因为作用域上的变量数量会远远少 于window对象的属性,搜索变量的速度会极大提高。 
这就是许多前端JS框架为什么常常要自己定义一个局部undefined变量的原因!

以上就是javascript中的null和undefined用法区别实例详解的详细内容,更多请关注php中文网其它相关文章!

相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号