Le mot-clé default peut être utilisé à deux endroits en JavaScript : au sein d'une instruction switch ou dans une instruction export.

Syntaxe

Dans une instruction switch :

switch (expression) {
  case valeur1:
    // Les instructions exécutées quand le résultat
    // de l'expression vaut valeur1
    [break;]
  default:
    // Les instructions exécutées quand aucune des valeurs
    // ne correspond à la valeur de l'expression
    [break;]
}

Dans une instruction export :

export default nomN 

Description

Pour plus de détails, voir les pages sur :

Exemples

Utiliser default dans une instruction switch

Dans l'exemple qui suit, si expr vaut "Bananes" ou "Pommes", le programme exécutera les instructions correspondantes à chacune de ces valeurs. Le mot-clé default permettra d'indiquer des instructions à exécuter dans les autres cas (expr ne correspond à aucun des cas).

switch (expr) {
  case "Bananes":
    console.log("Les bananes sont à 1.59€ le kilo.");
    break;
  case "Pommes":
    console.log("Les pommes sont à 0.78€ le kilo.");
    break;
  default:
    console.log("Désolé, nous n'avons plus de " + expr + ".");
}

Utiliser default avec export

Si on souhaite exporter une seule valeur ou avoir une valeur par défaut dans un module, on peut utiliser un export avec default :

// module "mon-module.js"
let cube = function cube(x) {
  return x * x * x;
}
export default cube;

Dans un autre script, on pourra simplement faire référence à l'export par défaut :

import maFonction from 'mon-module';
console.log(maFonction(3)); // 27

Spécifications

Spécification État Commentaires
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Instruction switch' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Exports' dans cette spécification.
Standard  
ECMAScript Latest Draft (ECMA-262)
La définition de 'switch statement' dans cette spécification.
Projet  
ECMAScript Latest Draft (ECMA-262)
La définition de 'Exports' dans cette spécification.
Projet  

Compatibilité des navigateurs

Update compatibility data on GitHub
OrdinateurMobileServeur
ChromeEdgeFirefoxInternet ExplorerOperaSafariWebview AndroidChrome pour AndroidEdge MobileFirefox pour AndroidOpera pour AndroidSafari pour iOSSamsung InternetNode.js
default keyword in switchChrome 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
default keyword with exportChrome Support complet 61Edge Support complet 16
Support complet 16
Support complet 15
Désactivée
Désactivée From version 15: this feature is behind the Experimental JavaScript Features preference.
Firefox Support complet 60
Support complet 60
Aucun support 54 — 60
Désactivée
Désactivée From version 54 until version 60 (exclusive): this feature is behind the dom.moduleScripts.enabled preference. To change preferences in Firefox, visit about:config.
IE Aucun support NonOpera Support complet 47Safari Support complet 10.1WebView Android Aucun support NonChrome Android Support complet 61Edge Mobile Support complet OuiFirefox Android Support complet 60
Support complet 60
Aucun support 54 — 60
Désactivée
Désactivée From version 54 until version 60 (exclusive): this feature is behind the dom.moduleScripts.enabled preference. To change preferences in Firefox, visit about:config.
Opera Android Support complet 47Safari iOS Support complet 10.1Samsung Internet Android Aucun support Nonnodejs ?

Légende

Support complet  
Support complet
Aucun support  
Aucun support
Compatibilité inconnue  
Compatibilité inconnue
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.
Une action explicite de l'utilisateur est nécessaire pour activer cette fonctionnalité.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight
Dernière mise à jour par : SphinxKnight,