[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/export [Back]  [Original]

export - JavaScript | MDN

MDN Web Docs

View in English Always switch to English

export

20185

export JavaScript import

export HTML <script> type="module"

js
// 
export let name1, name2/*,  */; // also var
export const name1 = 1, name2 = 2/*,  */; // also var, let
export function functionName() { /*  */ }
export class ClassName { /*  */ }
export function* generatorFunctionName() { /*  */ }
export const { name1, name2: bar } = o;
export const [ name1, name2 ] = array;

// 
export { name1, /* , */ nameN };
export { variable1 as name1, variable2 as name2, /* , */ nameN };
export { variable1 as "string name" };
export { name1 as default /*,  */ };

// 
export default expression;
export default function functionName() { /*  */ }
export default class ClassName { /*  */ }
export default function* generatorFunctionName() { /*  */ }
export default function () { /*  */ }
export default class { /*  */ }
export default function* () { /*  */ }

// 
export * from "module-name";
export * as name1 from "module-name";
export { name1, /* , */ nameN } from "module-name";
export { import1 as name1, import2 as name2, /* , */ nameN } from "module-name";
export { default, /* , */ } from "module-name";
export { default as name1 } from "module-name";
nameN

import as

js
// 
export { myFunction2, myVariable2 };

//  varletconstfunctionclass
export let myVariable = Math.sqrt(2);
export function myFunction() {
  // 
}

export letconst var export { name1, name2 } export {}

X X

js
export { x };
const x = 1;
//  `export`  `x` 

js
// 
export { myFunction as default };
// 
export default myFunction;

// 
export default function () { /*  */ }
export default class { /*  */ }

default SyntaxError

export default

js
export default 1 + 1;

js
//  `foo` 
foo();

export default function foo() {
  console.log("Hi");
}

// 
export default function () {
  console.log("Hi");
}

as

js
// test.js 
const k = 12;
export default k;
js
// 
import m from "./test"; //  import m  import k k 
console.log(m); // 12

js
export { myFunction as function1, myVariable as variable };

js
export { myFunction as "my-function" };

/

export from

js
export { default as function1, function2 } from "bar.js";

import export function1 function2

js
import { default as function1, function2 } from "bar.js";
export { function1, function2 };

import fromexport from

js
export { x } from "mod";
export { x as v } from "mod";
export * as ns from "mod";

import * from "mod" export * from "mod" mod mod

js
// -- mod1.js --
export const a = 1;

// -- mod2.js --
export const a = 3;

// -- barrel.js --
export * from "./mod1.js";
export * from "./mod2.js";

// -- main.js --
import * as ns from "./barrel.js";
console.log(ns.a); // undefined

js
import { a } from "./barrel.js";
// SyntaxError: The requested module './barrel.js' contains conflicting star exports for name 'a'

js
export DefaultExport from "bar.js"; // 

js
export { default as DefaultExport } from "bar.js";

export from as

js
export { default, function2 } from "bar.js";

my-module.js

js
// module "my-module.js"
function cube(x) {
  return x * x * x;
}

const foo = Math.PI + Math.SQRT2;

const graph = {
  options: {
    color: "white",
    thickness: "2px",
  },
  draw() {
    console.log(" graph draw function");
  },
};

export { cube, foo, graph };

HTML

js
import { cube, foo, graph } from "my-module.js";

graph.options = {
  color: "blue",
  thickness: "3px",
};

graph.draw(); // " graph draw function"
console.log(cube(3)); // 27
console.log(foo); // 4.555806215962888

js
// module "my-module.js"

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

js
import cube from "./my-module.js";
console.log(cube(3)); // 27

  • childModule1.js: myFunction myVariable
  • childModule2.js: myClass
  • parentModule.js:
  • parentModule.js

js
// childModule1.js 
function myFunction() {
  console.log("Hello!");
}
const myVariable = 1;
export { myFunction, myVariable };
js
// childModule2.js 
class MyClass {
  constructor(x) {
    this.x = x;
  }
}

export { MyClass };
js
// parentModule.js 
//  childModule1  childModule2 
// 
export { myFunction, myVariable } from "childModule1.js";
export { MyClass } from "childModule2.js";
js
// 
//  parentModule 
// /
import { myFunction, myVariable, myClass } from "parentModule.js";

ECMAScript 2027 LanguageSpecification
# sec-exports


Web Proxy Viewer  |  New URL  |  Original Page