What is "export default" in JavaScript? What is "export default" in JavaScript? javascript javascript

What is "export default" in JavaScript?


It's part of the ES6 module system, described here. There is a helpful example in that documentation, also:

If a module defines a default export:

// foo.jsexport default function() { console.log("hello!") }

then you can import that default export by omitting the curly braces:

import foo from "foo";foo(); // hello!

Update: As of June 2015, the module system is defined in §15.2 and the export syntax in particular is defined in §15.2.3 of the ECMAScript 2015 specification.


export default is used to export a single class, function or primitive from a script file.

The export can also be written as

export default function SafeString(string) {  this.string = string;}SafeString.prototype.toString = function() {  return "" + this.string;};

This is used to import this function in another script file

Say in app.js, you can

import SafeString from './handlebars/safe-string';

A little about export

As the name says, it's used to export functions, objects, classes or expressions from script files or modules

Utiliites.js

export function cube(x) {  return x * x * x;}export const foo = Math.PI + Math.SQRT2;

This can be imported and used as

App.js

import { cube, foo } from 'Utilities';console.log(cube(3)); // 27console.log(foo);    // 4.555806215962888

Or

import * as utilities from 'Utilities';console.log(utilities.cube(3)); // 27console.log(utilities.foo);    // 4.555806215962888

When export default is used, this is much simpler. Script files just exports one thing.cube.js

export default function cube(x) {  return x * x * x;};

and used asApp.js

import Cube from 'cube';console.log(Cube(3)); // 27


export default function(){} can be used when the function doesn't have a name. There can only be one default export in a file. The alternative is a named export.

This page describes export default in detail as well as other details about modules that I found very helpful.