全等号 === 已经在我日常开发中占据绝原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。对位置,在我开发中所有判断里面,== 已【未经授权禁止转载】转载请注明出处:www.tangshuang.net经被当作奇淫巧技了,不在万不得已的情况下原创内容,盗版必究。原创内容,盗版必究。,不会使用,其地位和分号; 等同。所以,转载请注明出处:www.tangshuang.net原创内容,盗版必究。现在讨论如何判断一个值是否为 undef【本文受版权保护】原创内容,盗版必究。ined 的时候,我只会用 ===。
【转载请注明来源】【原创不易,请尊重版权】转载请注明出处:www.tangshuang.net现在的问题是,在 var === undefined vs. typeof var === 'undefined' 这两种判断中,谁更好?先说结论,使用 【转载请注明来源】未经授权,禁止复制转载。typeof 的方法更好。最主要的原因有原创内容,盗版必究。未经授权,禁止复制转载。两点:
- var === undefined 的形【转载请注明来源】原创内容,盗版必究。式,你不能确保 var 被声明过,当 v【未经授权禁止转载】本文版权归作者所有,未经授权不得转载。ar 没声明过时,程序直接报错,而使用 【本文受版权保护】【版权所有】唐霜 www.tangshuang.nettypeof 可以用来判定一个变量是否声原创内容,盗版必究。【访问 www.tangshuang.net 获取更多精彩内容】明过,这也是我们常用的 typeof w【转载请注明来源】【本文首发于唐霜的博客】indow … typeof【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】 global … type原创内容,盗版必究。原创内容,盗版必究。of self … this原创内容,盗版必究。本文作者:唐霜,转载请注明出处。 这个办法来搞定不同运行时环境下的处理。 著作权归作者所有,禁止商业用途转载。【未经授权禁止转载】【本文首发于唐霜的博客】未经授权,禁止复制转载。
- undefined 竟然是 window本文版权归作者所有,未经授权不得转载。未经授权,禁止复制转载。 的属性,按理来说作为 js 语言的基础【版权所有,侵权必究】【版权所有】唐霜 www.tangshuang.net类型,提供和 null 一样的关键字应该转载请注明出处:www.tangshuang.net【版权所有,侵权必究】由语言解释器来做吧,但是在运行时中(浏览著作权归作者所有,禁止商业用途转载。未经授权,禁止复制转载。器),undefined 和 null 本文版权归作者所有,未经授权不得转载。著作权归作者所有,禁止商业用途转载。完全是两个层面的东西,null 是内置于【作者:唐霜】【原创不易,请尊重版权】解析器的空指针符号,而 undefine【版权所有,侵权必究】转载请注明出处:www.tangshuang.netd 是挂在 window 上的全局变量,本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】竟然是挂在 window 上的变量,那么【作者:唐霜】本文作者:唐霜,转载请注明出处。每次使用 var === undefin【版权所有】唐霜 www.tangshuang.net【关注微信公众号:wwwtangshuangnet】ed 时,实际上会去 window 上读【原创内容,转载请注明出处】转载请注明出处:www.tangshuang.net取变量,读取的多了,也就让我们开始遐想有本文作者:唐霜,转载请注明出处。【原创不易,请尊重版权】没有办法通过不断调用 undefined【本文首发于唐霜的博客】著作权归作者所有,禁止商业用途转载。 变量使系统崩溃。不过值得庆幸的是,un【访问 www.tangshuang.net 获取更多精彩内容】【关注微信公众号:wwwtangshuangnet】defined 是不能重新赋值的,und【本文受版权保护】【原创内容,转载请注明出处】efined = 1 虽然不会报错,但是原创内容,盗版必究。【关注微信公众号:wwwtangshuangnet】没效果。而执行 null = 1 则会直本文作者:唐霜,转载请注明出处。原创内容,盗版必究。接报错。就是这么奇妙。 转载请注明出处:www.tangshuang.net原创内容,盗版必究。【原创内容,转载请注明出处】著作权归作者所有,禁止商业用途转载。
虽然使用 typeof 要多写好多个字母【原创不易,请尊重版权】原创内容,盗版必究。,但是,抛开其他各种个人偏好问题,上面这【未经授权禁止转载】【本文首发于唐霜的博客】两个理由足以让人选择 typeof 的形未经授权,禁止复制转载。【转载请注明来源】式来判断 undefined 了。
【关注微信公众号:wwwtangshuangnet】【关注微信公众号:wwwtangshuangnet】
