내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
각 js 파일은 모듈이며 CommonJS 모듈 사양이 기본적으로 채택됩니다.
새로운 ES6 모듈 pk 기존 CommonJS 모듈
특성 | 커먼JS | ES6 모듈성 |
---|---|---|
내보내다 | exports 물체 | export 키워드 |
수입 | require() 기능 | import 키워드 |
로딩 모드 | 동기화 | 비동기식 |
실행 모드 | 하나씩 일어나는 것 | 하나씩 일어나는 것 |
종속성 | 공전 | 동적 |
흔들리는 나무 모양 | 지원하지 않음 | 지원하다 |
로딩 모드
실행 모드
CommonJS 및 ES6 모듈의 실행은 싱글톤입니다. 모듈은 한 번만 로드되며 모듈에 대한 모든 참조는 동일한 인스턴스를 가리킵니다.
종속성
흔들리는 나무 모양
JavaScript 번들에서 사용되지 않는 코드를 제거하기 위한 최적화 기술입니다.
ES6 모듈을 활성화하는 세 가지 방법
"type": "module"
, Node.js는 모든 .js 파일을 ES6 모듈로 처리합니다..mjs
, Node.js가 자동으로 ES6 모듈로 처리하도록 합니다.type="module"
속성ES6 모듈 구문
각 모듈에는 기본 내보내기가 하나만 있을 수 있습니다.
let a = 1
// 默认导出 a
export default a
// 导入默认时,可以命其他名称
import b from './demo.js'
console.log(b)
함수 표현식/익명 함수를 기본 내보내기로 직접 사용할 수 있습니다.
export default function myFunc() {}
export default function() {}。
let a = 1
let b = 2
export { a, b }
// 导入多项时,必须与导出名对应
import { a, b } from './demo.js'
console.log(a, b)
let a = 1
let b = 2
export { a as c, b as d }
// 导入时,只能导入新的名称
import { c, d } from './demo.js'
console.log(c, d)
export { name1, name2, ... } from 'module-name'
export let a = 1;
export let b = 2;
// 通过 as 重命名为一个变量(值为对象)
import * as myModule from "./demo.mjs";
console.log(myModule.a);
console.log(myModule.b);
import {trunc as StringLib} from "../lib/string.js"
import {trunc as MathLib} from "../lib/math.js"
import pkg from "./package.json" assert { type: "json" };
const { default: jsonObject } = await import('./file.json', {
assert: {
type: 'json'
}
});
import * as 自定义名称 from '模块名称'
CommonJS 모듈 구문
내보내다
module.exports = "朝阳";
수입
const demoModule = require("./demo.js");
console.log(demoModule); // 朝阳
내보내다
exports.a = 1;
exports.b = 2;
수입
const demoModule = require("./demo.js");
console.log(demoModule); // { a: 1, b: 2 }