Il semble que Le point est cependant que chaque fois que je me réfère à Alors, comment puis-je réellement avoir accès à un Si je code: p> < PRE> XXX PRE> Comment pourrais-je éventuellement résoudre ce problème? P> P> window.undefinfin code> est écritable, c'est-à-dire qu'il peut être défini sur autre chose que sa valeur par défaut (qui est, sans surprise,
non défini code>).
non défini code>, il fait référence à
window.undefinefinhefinefinefin (comme
fenêtre code> peut être supprimé dans des cas comme ceci). P>
non défini code> 'instance', afin de dire? Comment puis-je pouvoir définir une autre variable sur
indéfini code>, si
window.undefinefinine code> a été modifié? P>
4 Réponses :
La solution "standard" à ce problème consiste à utiliser l'opérateur vide intégré code>. Son objectif est de renvoyer indéfini:
function foo(arg1, arg2, undefined){ //undefined is the last argument
//Use `undefined` here without worrying.
//It is a local variable so no one else can overwrite it
}
foo(arg1, arg2);
//since you didn't pass the 3rd argument,
//the local variable `undefined` in foo is set to the real `undefined`.
En fait, en comparant quoi que ce soit avec non défini code> n'est pas une bonne idée du tout. Devrait utiliser
typeof code> Opérateur à la place:
function isUndefined ( variant ) { return typeof variant === 'undefined' }
En plus des autres solutions, vous pouvez faire le truc Void 0 code>, qui renvoie toujours
non défini code> indéfini de la fenêtre code> code>. < Pré> xxx pré> p>
Cela semble le plus simple et le plus efficace pour moi.
Il faut suffire à déclarer une variable sans l'assigner à quoi que ce soit: mais pourquoi sur Terre est-il possible de changer de valeur non définie? Est-ce que quelqu'un connaît l'histoire derrière cela? P> p>
Cela fonctionne de cette façon, mais il est nécessaire d'utiliser local_undefinefind code> à la place ( jsfiddle.net/vmjyd ). Et ce problème semble être réparé dans JavaScript 1.8.5 ( développeur.mozilla.org / FR / JavaScript / Référence / Global_Object S / ... ).
Correct lien ici: développeur.mozilla.org/en-us/ Docs / JavaScript / Référence / ...
Corrigez le code qui écrase
non défini code>?
Je suppose que je le stockerais avant de le changer.
var nonf = fenêtre.undefined; fenêtre.undifined = 'foo'; voiture myvar = undef; code>
Son point est
Ce code aurait peut-être été exécuté par quelqu'un / quelque chose code>. Où prendre la valeur
non défini code> à partir de là?
@John: Non, je ne veux pas vraiment dire ça - je voudrais rendre mon code sûr et stable et non fiable sur
window.undefined code>. E.G., quelqu'un d'autre pourrait définir
window.undefinefind code> et ensuite mon code est exécuté. Alors y a-t-il un moyen de toujours obtenir
non défini code>?
Êtes-vous en train de courir dans ce problème sur le terrain ou juste en théorie / test? Tandis que Window.undefinfin est écritable, il est évident que l'écriture est une très mauvaise idée. Y a-t-il des bibliothèques qui y écrivent?
Juste théoriquement - désolé si cela confondu personne.
Peut-être qu'il convient de souligner que les navigateurs modernes avec un soutien total de l'ECMA 5 ne vous permettent plus de remplacer les mots-clés réservés tels que par exemple.
non défini code> de sorte que cela ne pourrait pas être un cas alors.