undefined=true;然后返回到未定义

undefined = true; then back to undefined?

本文关键字:返回 未定义 然后 true undefined      更新时间:2023-09-26

一些javascript错误:

如果这有效

undefined = true;

那么如何恢复到将undefined设置回表示undefined


当然,简单的方法是在将undefined设置为true之前将undefined存储在另一个变量中。您还有什么其他方法可以恢复undefined

首先想到的是delete undefined;,没有起作用。

Alex的答案是确保undefined真正未定义的安全实用的方法。

但是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一起使用。