L'opérateur void permet d'évaluer une expression donnée et de renvoyer undefined.

Syntaxe

void expression

Description

Cet opérateur permet d'évaluer des expressions retournant une valeur là où on attend une expression qui vaut undefined.

L'opérateur void est souvent utilisé pour obtenir la valeur undefined, généralement avec "void(0)" (qui est l'équivalent de "void 0"). Pour ce cas d'exemple, on aurait très bien pu utiliser la variable globale undefined.

Expressions de fonction appelées immédiatement

Lorsqu'on utilise tout un script dans une fonction qu'on évalue immédiatement, void peut être utilisé pour que le mot-clé function soit traité comme une expression plutôt que comme une déclaration.

void function iife() {
    var toto = function () {};
    var machin = function () {};
    var truc = function () {
        toto();
        machin();
     };
    var bidule = function () {};

    truc();
    bidule();
}();

Les URI JavaScript

Lorsqu'un navigateur utilise une URI avec javascript:, le code de l'URI est évalué et le résultat remplace le contenu de la page, sauf si la valeur renvoyée vaut undefined. L'utilisateur void peut alors être utilisé pour renvoyer cette valeur. Par exemple :

<a href="javascript:void(0);">
  Cliquer ici (sans effet)
</a>

<a href="javascript:void(document.body.style.backgroundColor='green');">
  Cliquer ici pour rendre le fond vert
</a>

Malgré cela, il n'est pas recommandé d'utiliser le pseudo-protocole javascript:, on lui préférera des méthodes moins risquées et moins intrusives comme les gestionnaires d'événements.

Fonctions fléchées sans valeur de retour

Les fonctions fléchées raccourcissent la syntaxe pour obtenir la valeur d'une fonction avec le résultat d'une expression qui constitue le corps de la fonction. Ainsi, la fonction renvoie nécessairement une valeur. Aussi, convertir une base de code afin d'utiliser des fonctions fléchées peut avoir certains effets de bord lorsqu'on souhaite qu'une fonction soit simplement exécutée mais pas que sa valeur de retour interfère avec le reste.

Pour éviter de transmettre cette valeur de retour, on pourra utiliser l'opérateur void :

button.onclick = () => void faireQQc();

Ainsi, la valeur de retour de la fonction faireQQc sera bloquée par void et c'est undefined qui sera la valeur de retour de la fonction fléchée. Cela s'avère utile si on change l'API de faireQQc par exemple et qu'on souhaite éviter les effets de bord causés par cette modification.

Spécifications

Spécification Statut Commentaires
ECMAScript Latest Draft (ECMA-262)
La définition de 'Opérateur void' dans cette spécification.
Projet  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'L'opérateur void' dans cette spécification.
Standard  
ECMAScript 5.1 (ECMA-262)
La définition de 'L'opérateur void' dans cette spécification.
Standard  
ECMAScript 3rd Edition (ECMA-262)
La définition de 'L'opérateur void' dans cette spécification.
Standard  
ECMAScript 1st Edition (ECMA-262)
La définition de 'L'opérateur void' dans cette spécification.
Standard Définition initiale. Implémentée avec JavaScript 1.1

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari sur iOSSamsung InternetNode.js
Support simpleChrome Support complet OuiEdge Support complet OuiFirefox Support complet 1IE Support complet OuiOpera Support complet OuiSafari Support complet OuiWebView Android Support complet OuiChrome Android Support complet OuiEdge Mobile Support complet OuiFirefox Android Support complet 4Opera Android Support complet OuiSafari iOS Support complet OuiSamsung Internet Android Support complet Ouinodejs Support complet Oui

Légende

Support complet  
Support complet

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight, svvac, teoli, Jeremie, Mgjbot, BenoitL
Dernière mise à jour par : SphinxKnight,