Javascript modules: Difference between revisions
From wikinotes
No edit summary |
|||
Line 12: | Line 12: | ||
= Example = | = Example = | ||
<blockquote> | <blockquote> | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="html5"> | ||
< | <!-- index.html --> | ||
<html lang="en"> | <html lang="en"> | ||
<head> | <head> | ||
Line 23: | Line 21: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<syntaxhighlight lang="javascript"> | |||
// main.js | |||
import * as Math from './modules/math.js' | |||
console.log(Math.sum(1, 2)); | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="javascript"> | |||
// modules/math.js | |||
export function sum(a, b) { | |||
return a + b; | |||
} | |||
</syntaxhighlight> | |||
</blockquote><!-- Example --> | |||
= Syntax = | |||
<blockquote> | |||
== Imports == | |||
<blockquote> | |||
<syntaxhighlight lang="javacript"> | <syntaxhighlight lang="javacript"> | ||
import * as Foo from './modules/foo.js' | import * as Foo from './modules/foo.js' // exported symbols accessed on 'Foo' namespace | ||
import { Bar, Baz } from './modules/foo.js' | import { Bar, Baz } from './modules/foo.js' // import exported 'Bar', 'Baz' into current namespace | ||
import { Bar as barbar } from './modules/foo.js' | import { Bar as barbar } from './modules/foo.js' // import exported 'Bar' as symbol 'barbar' within current namespace | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- Imports --> | |||
== Exports == | |||
<blockquote> | |||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
export { foo, bar, baz }; | export { foo, bar, baz }; | ||
Line 34: | Line 54: | ||
export { name } from 'foo.js' | export { name } from 'foo.js' | ||
</syntaxhighlight> | </syntaxhighlight> | ||
</blockquote><!-- | </blockquote><!-- Exports --> | ||
</blockquote><!-- Syntax --> | |||
= Exporting Symbols = | = Exporting Symbols = |
Revision as of 15:58, 18 December 2022
In recent years, javascript has been extended to support modules.
Documentation
MDN modules https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules
Example
<!-- index.html --> <html lang="en"> <head> <script type="module" src="main.js"></script> <!-- add main.js to file --> </head> </html>// main.js import * as Math from './modules/math.js' console.log(Math.sum(1, 2));// modules/math.js export function sum(a, b) { return a + b; }
Syntax
Imports
import * as Foo from './modules/foo.js' // exported symbols accessed on 'Foo' namespace import { Bar, Baz } from './modules/foo.js' // import exported 'Bar', 'Baz' into current namespace import { Bar as barbar } from './modules/foo.js' // import exported 'Bar' as symbol 'barbar' within current namespaceExports
export { foo, bar, baz }; export * from 'foo.js' export { name } from 'foo.js'
Exporting Symbols
Exporting Default
// ${project}/modules/math.js export default function sum(a, b) { return a + b; }import * as Math from './modules/math.js' Math.default(1, 1) // -> 2 ('default' is the 'sum' function)