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

浅谈javascript中的null和undefined

零下一度
发布: 2017-06-26 09:11:54
原创
1803人浏览过

只要是说到js的变量和数据类型,就脱不开null和undefined,这兄弟俩就是js的重要基础,不可不察,无数的同学们都用过放大镜多角度多批次地研究过这兄弟俩,真是深受欢迎。^-^

js也真是怪异,有个null不够,还要折腾出个undefined。

虽然被诟病,但这就是设计。

 

在c#和java中,null就是表示空,没有分配内存。

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

在js中的null采用Number(null)的结果是0,代表什么,代表这不是空,仅仅是空值,是没有值,它的数据类型是"object"。

 

那么为了表示空,所以设计者搞了一个undefined,它有单独的数据类型就是"undefined"。

使用Number(undefined)的结果是NaN,转换结果也能达到设计目的。

造成这样的设计结果,表达式中的数据类型转换起了关键作用。

 

未定义的变量或已定义的但未赋值的变量就表示空,就是undefined。

undefined更多的是javascript本身使用。

居然设计家
居然设计家

居然之家和阿里巴巴共同打造的家居家装AI设计平台

居然设计家 199
查看详情 居然设计家

比如,码农要想删除一个对象的属性不是把这个属性赋上undefined,因为这样属性还是在,用hasOwnProperty检测一下这个属性还是存在,在有些逻辑需要判断的地方就会出问题,要是删除属性就前置delete。

var o1={p1:'v1',p2:'v2'};
o1.p2=undefined;
o1.hasOwnProperty('p2'); //true
登录后复制

要删除数组元素,为了没有副作用,那么就用splice。

码农要是使用undefined来赋值就要想想清楚了。

 

对于码农来说,更多的是使用null,可以将一个变量赋上空值,断开和对象实例的联系,保证垃圾回收,也可以以备该变量符号后续使用。

 

null和undefined比较的时候也是坑坑坑

null == undefined //truenull == false //falseundefined == false //false
登录后复制

虽然怪异,但这就是结果,这就是设计。

可查看ECMA-262的相关定义,规则定义链接1,链接2。

 

END

 

以上就是浅谈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号