一些javascript tomfoolery:
如果这可行
undefined = true;
那你怎么能恢复到将 undefined
设置回表示 undefined
呢?
当然,简单的方法是在将 undefined
设置为 true
之前将 undefined
存储在另一个变量中。还有什么其他方法可以恢复 undefined
?
首先想到将其设置回去的是 delete undefined;
,但没有用。
最佳答案
Alex's answer是确保 undefined
确实未定义的安全实用方法。
但是 JS 非常灵活,所以为了好玩,如果你想恢复全局未定义
,那么你可以重新分配 window.undefined
来自新函数作用域的安全性:
(function () { // Create a new scope
var a; // "a" is undefined in this scope
window.undefined = a; // Set the global "undefined" to "a"
})() // Execute immediately
进一步考虑这个想法,您可以将上面的内容重新配置为:
undefined = (function () {
var a; // "a" is undefined
return a; // return "a"
})();
或者真的,只是这样:
undefined = (function () {
return;
})();
但实际上,你实际上不需要返回任何东西:
undefined = function(){}();
当然,还有void
operator ;-) 噢!
undefined = void 0;
关于javascript - 未定义=真;然后回到未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5725586/