The default keyword can be used in two situations in JavaScript: within a switch statement, or with an export statement.


Within a switch statement:

switch (expression) {
  case value1:
    //Statements executed when the result of expression matches value1
    //Statements executed when none of the values match the value of the expression

With export statement:

export default nameN 


For more details see the


Using default in switch statements

In the following example, if expr evaluates to "Bananas" or "Apples", the program matches the values with either the case "Bananas" or "Apples" and executes the corresponding statement. The default keyword will help in any other case and executes the associated statement.

switch (expr) {
  case 'Oranges':
    console.log('Oranges are $0.59 a pound.');
  case 'Apples':
    console.log('Apples are $0.32 a pound.');
    console.log('Sorry, we are out of ' + expr + '.');

Using default with export

If you want to export a single value or need a fallback value for a module, a default export can be used:

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

Then, in another script, it will be straightforward to import the default export:

// module "my-module.js"
import cube from 'my-module';  //default export gave us the liberty to say import cube, instead of import cube from 'my-module'
console.log(cube(3)); // 27


Browser compatibility

Feature Chrome Edge Firefox Internet Explorer Opera Safari
default keyword in switch Yes Yes Yes Yes Yes Yes
default keyword with export 61



542 No 47 10.1
Feature Android webview Chrome for Android Edge mobile Firefox for Android Opera Android iOS Safari Samsung Internet
default keyword in switch Yes Yes Yes Yes Yes Yes ?
default keyword with export No 61 Yes 542 47 10.1 ?

1. From version 15: this feature is behind the Experimental JavaScript Features preference.

2. From version 54: this feature is behind the dom.moduleScripts.enabled preference. To change preferences in Firefox, visit about:config.

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.