spe*_*ufo 5 javascript undefined void underscore.js
阅读下划线的来源,我注意到使用void 0而不是undefined.我知道在某些浏览器中,undefined可以被覆盖,在许多情况下,解决这个问题的方法是在调用函数或return;-ing 时省略参数.事实上,为了缩小目的,这样做比使用更有意义void 0.
(function (window, undefined){
/* ... */
}(window));
Run Code Online (Sandbox Code Playgroud)
从各方面来看似乎都更好.它更具可读性void 0,可以进一步缩小,并且可以提供一些微小的性能提升,如链接答案中所述.
好的,void 0在下划线中出现约6次,在主干中出现9次,因此它没有太大的区别.所以,我的问题是:是否有任何理由或角落案例void 0更可取?
这是一个例子,说明为什么“未定义的参数”可能是一个可怕的想法。
假设您已经习惯这样做了。然后你也开始将它应用到其他函数中,如下所示:
function doSomething(undefined) {
// blah blah blah
if( something == undefined) {
// problem
}
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,对吧?
假设这个函数是一个事件处理程序。
someElement.onclick = doSomething;
Run Code Online (Sandbox Code Playgroud)
哦亲爱的。doSomething传递了一个 Event 对象,这肯定不是 undefined!
void 0更加稳健,因为它不依赖于怪癖或假设来工作。
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |