2 votes

Clarification sur l'utilisation de "undefined" dans ce code ?

Je lisais du code pour une bibliothèque js et j'ai vu ceci :

// make sure undefined is undefined
var undefined;

J'ai déjà cherché à plusieurs reprises la manière correcte de vérifier les éléments indéfinis en javascript et j'ai trouvé des articles tels que :

Ce bout de code est-il une bonne chose à ajouter ou est-il inutile ou quelque chose au milieu ?

3voto

Simon Boudrias Points 12696

En javascript, undefined est un nom de variable valide.

Dans les bibliothèques, il est courant de voir des auteurs redéfinir undefined a undefined pour être sûr qu'ils ne se cassent pas. Mais le risque est assez faible, peu de gens écrasent les données. undefined pour des raisons évidentes !

Le rationnel derrière cela est :

var a;
console.log( a === undefined );

En général, vous verrez ce formulaire beaucoup plus fréquemment :

(function( undefined ) {

}());

1voto

Paulpro Points 54844

Ça n'aide pas du tout. Si undefined a reçu une valeur différente (ce qui n'est possible que dans les anciennes versions de Javascript), cette ligne ne changera pas ce fait. Vous pourriez utiliser ceci :

var a;

;(function(undefined){

   // Here undefined is definitely undefined, 
   // so it is safe to test for undefined using ===:
   if(a === undefined){
     console.log('a is undefined!');
   }

})();

1voto

kamituel Points 11036

L'inconvénient des JS, c'est qu'il est possible de déclarer une variable appelée "undefined".

Si vous voulez être encore plus sûr et être certain à 100% qu'undefined est réellement ce que vous attendez, vous pouvez toujours vérifier undefined d'une manière différente - en utilisant void (voici un Document MDN ) :

// if a is undefined
if (a === void 1) {
}

// where: void 1 === *real* undefined

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X