undefined = true;然后回到未定义状态?

| 一些javascript tomfoolery: 如果这可行
undefined = true;
那么如何恢复设置vert1ѭ回到代表
undefined
呢? 当然,简单的方法是在将
undefined
设置为
true
之前将
undefined
存储在另一个变量中。您还能通过什么其他方式还原
undefined
? 首先想到要把它放回去是7英镑,没有用。
已邀请:
亚历克斯的答案是确保ѭ1真正不确定的安全实用方法。 但是JS超级灵活,因此,为了好玩,如果希望还原全局
undefined
,则可以从新函数作用域的安全性中重新分配
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
运算符;-) doh!
undefined = void 0;
(function(undefined) {

   // undefined is undefined again!

})();
jQuery使用此模式。
delete
运算符最适合从对象中删除属性。它有很多无法使用的功能,将其与
Array
一起使用只会将元素设置为
undefined
(其中的一部分不会由
in
枚举)。最好将
splice()
Array
一起使用。

要回复问题请先登录注册