void操作符
产生式 UnaryExpression : void UnaryExpression 按如下流程解释:
- 令 expr 为解释执行UnaryExpression的结果。
- 调用 GetValue(expr).
- 返回 undefined.
注意:GetValue一定要调用,即使它的值不会被用到,但是这个表达式可能会有副作用(side-effects)。
so:
function x() {
var undefined = 'hello world',
f = {},
window = {
'undefined': 'joke'
};
console.log(undefined);// hello world
console.log(window.undefined); //joke
console.log(f.a === undefined); //false
console.log(f.a === void 0); //true
}除了采用void能保证取到undefined值以外,还有其它方法吗?有的,还有一种方式是通过函数调用。如AngularJS的源码里就用这样的方式:
(function(window, document, undefined) {
//.....
})(window, document);so:
总结:
- 通过采用
void 0取undefined比采用字面上的undefined更靠谱更安全,应该优先采用void 0这种方式。 填充
<a>的href确保点击时不会产生页面跳转; 填充<image>的src,确保不会向服务器发出垃圾请求。
版权声明:本文为qq_21423689原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。