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.