void 0 或者 undefined
来源:互联网 发布:js 对象属性名是变量 编辑:程序博客网 时间:2024/05/22 15:01
Problem
在检查一个值是否为undefined的时候,你们是如果去测试的?
要是之前的我会这样子测试
function isUndefined(obj){ return obj === undefined;}
但是最近在看《javascript框架设计》这本书的时候,他用了另外一种方法,我就有点纳闷了。
function isUndefined(obj){ return obj === void 0;}
两者谁比较好点呢?如何比较呢?应该从它的适用性、浏览器兼容性来比较!然后我就在MDN找到void操作符的定义和undefined的说明,才知道《javascript框架设计》中的方法略胜一筹。为什么呢?下面来讲解
Description
- void
- The void operator evaluates the given expression and then returns undefined.也是就是说void是一个操作符,它总是返回的是undefined这个值
- undefined
- The global undefined property represents the value undefined.就是说undefined其实是一个全局变量,它的是就是代表着undefined。我们可以用
window.hasOwnProperty("undefined");
去测试,返回true就证明它是全局变量。既然它是全局变量的话,我们就可以修改它了,在修改一些特定变量方面ES3和ES5中是不一样的。ES3中每个变量都是可写可配置可遍历的,但是ES5设置一些API去设置变量的这些特性。我们可以在chrome(支持ES5)的控制台敲上一句这样子的代码Object.getOwnPropertyDescriptor(window,"undefined")
,我们可以看见他打印出来的是Object {value: undefined, writable: false, enumerable: false, configurable: false}
。可以看见在ES5中的undefined值是不能修改(即writable为false)的,但是在旧的浏览器比如IE7、8,你就可以修改undefined的值,导致你的isUndefined失去效果了。
Why void 0, specifically?
stackoverflow网站的一个问题有提到一定要用void 0吗?不能是void 1,void 10000,void "hello world" 或者其他吗?答案都是可以的,只是0给人的感觉就是简短、惯用.
Reference
undefinedvoid
What does void 0 mean?
0 0
- void 0 或者 undefined
- void 0 与 undefined
- void 0 和 undefined
- 用void 0代替undefined
- js中用 void 0 代替 undefined
- underscore.js中为什么用void 0来验证undefined
- Undefined symbol: 'CEikLabel::CEikLabel(void)
- warning: deleting 'void *' is undefined
- warning: deleting 'void *' is undefined
- javascript js undefined null 0 false void(0) NaN 空字符串 比较 区别
- JS魔法堂:从void 0 === undefined说起
- JS魔法堂:从void 0 === undefined说起
- Void运算符 与 undefined类型
- (*void (*) () ) 0) ();
- (void*)0
- void 0
- (*(void (*)( ) )0)( )
- (*(void (*) ()) 0) ();
- ARM-GCC编译
- Darwin Streaming Server 中继设置
- BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理
- leetcode:Binary Tree Inorder Traversal
- 使用英特尔尔集成众核MIC卡进行LAMMPS运算。
- void 0 或者 undefined
- JAVA获取文件后缀
- 缓存学习小结(一)
- Android调试 LogCat中的消息一闪而过,根本看不到打印的信息.
- Android apiDemo 学习
- C++ Primer学习之(12)——类
- BZOJ 1036: [ZJOI2008]树的统计Count
- 初始设计模式4——抽象工厂模式
- OpenGL 常用函数 总结