mozilla
Vos résultats de recherche

    undefined

    Résumé

    La propriété globale undefined représente la valeur undefined. Cette valeur est l'un des types primitifs JavaScript.

    Attributs de undefined
    Écrivable Non
    Énumérable Non
    Configurable Non

    Syntaxe

    undefined

    Description

    undefined est une propriété de l'objet global, c'est-à-dire qu'elle est accessible globalement. La valeur initiale d'undefined est la valeur primitive undefined. this needs clarification, but that would require explaining primitive values

    Dans les navigateurs modernes, d'après la spécification ECMAScript 5, undefined est une propriété non-configurable et non accessible en écriture. Si, toutefois, elle peut être modifiée dans l'environnement utilisé, il faut éviter de l'écraser.

    Une variable pour laquelle aucune valeur n'a été assignée sera de type undefined. Une méthode ou instruction renvoie également undefined si la variable à évaluer n'a pas de valeur assignée. Une fonction renvoie undefined si aucune valeur n'a été retournée.

    Puisque undefined n'est pas un mot réservé du langage JavaScript, il peut être utilisé comme identifiant (nom de variable) dans toute portée autre que la portée globale.

    // écrit dans la console "toto string"
    (function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })();
    
    // écrit dans la console "toto string"
    (function(undefined){ console.log(undefined, typeof undefined); })('toto');
    

    Exemples

    L'égalité stricte et undefined

    Il est possible d'utiliser undefined et les opérateurs stricts pour l''égalité et l'inégalité strictes afin de déterminer si une variable a une valeur affectée. Dans le code qui suit, la variable x n'est pas définie, et la première instruction if sera évaluée à true (vrai).

    var x;
    if (x === undefined) {
       // ces instructions seront exécutées
    }
    if (x !== undefined) {
       // ces instructions ne seront pas exécutées
    }
    

    Note : L'opérateur d'égalité stricte doit être utilisé ici plutôt que l'opérateur d'égalité simple. En effet, x == undefined vérifie également si x vaut null, tandis que l'égalité stricte ne le fait pas. null n'est pas équivalent à undefined. Voir la page sur les opérateurs de comparaison pour plus de détails.

    L'opérateur typeof et undefined

    L'opérateur typeof peut également être utilisé :

    var x;
    if (typeof x == 'undefined') {
       // ces instructions seront exécutées
    }
    

    Une des raisons pour utiliser typeof est qu'il ne renverra pas d'erreur si la variable n'a pas été définie :

    // x n'a pas encore été défini
    if (typeof x === 'undefined') { // donnera true sans erreur
       // ces instructions seront exécutées
    }
    
    if (x === undefined){ // déclenche une ReferenceError
    
    }
    

    L'opérateur void et undefined

    L'opérateur void est une troisième solution.

    var x;
    if (x === void 0) {
       // ces instructions seront exécutées
    }
    
    // y n'a pas été défini avant
    if (y === void 0) {
       // déclenche une ReferenceError (contrairement à `typeof`)
    }
    

    Spécifications

    Spécification Statut Commentaires
    Première édition d'ECMAScript. Standard Définition initiale. Implémentée avec JavaScript 1.3
    ECMAScript 5.1 (ECMA-262)
    La définition de 'undefined' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'undefined' dans cette spécification.
    Draft  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Étiquettes et contributeurs liés au document

    Contributors to this page: tregagnon, Mgjbot, SphinxKnight, Jeremie, BenoitL, teoli
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale