Perbezaan: 1. CommonJS mengeluarkan salinan nilai, dan ES6 mengeluarkan rujukan kepada nilai 2. CommonJS dimuatkan pada masa jalan dan ES6 ialah antara muka keluaran masa kompilasi; dimuatkan serentak Modul, import ES6 dimuatkan secara tak segerak, dan terdapat fasa resolusi untuk kebergantungan modul bebas.
Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.
1 Modul CommonJS mengeluarkan salinan nilai, manakala modul ES6 mengeluarkan rujukan kepada nilai
Mari kita lihat penggunaan commonjs 1 Mula-mula buat fail lib.js// lib.js const counter = 3; const incCounter = ()=>{ counter++ } module.exports = { counter, incCounter }
// main.js var lib = require('./lib'); console.log(lib) console.log(lib.counter); // 3 lib.incCounter(); console.log(lib.counter); // 3
// lib.js export let counter = 3; export function incCounter () { counter++; }
// main.js import { counter, incCounter } from './util.mjs' console.log(counter); //3 incCounter() console.log(counter) //4
2. Modul CommonJS dimuatkan pada masa jalan dan modul ES6 ialah antara muka keluaran pada masa penyusunan
// CommonJS模块 let { stat, exists, readFile } = require('fs'); // 等同于 let _fs = require('fs'); let stat = _fs.stat; let exists = _fs.exists; let readfile = _fs.readfile;
import { stat, exists, readFile } from 'fs';
3 . Modul CommonJS memerlukan () ialah modul pemuatan segerak Arahan import modul ES6 ialah pemuatan tak segerak. bermakna bahawa proses memuatkan sumber atau modul akan menyekat pelaksanaan Kod berikutnya;
Laksanakan nod arahan index.js
Kami akan mendapati bahawa kandungan require akan menyekat pelaksanaan kod berikutnya. Kerana c.js dicetak dahulu, dan kemudian index.js dicetak, require() dimuatkan secara serentak; tidak segerak, kerana c.js dicetak selepas index.js dan tidak menyekat pelaksanaan kod berikutnya; 1: Modul CommonJS mengeluarkan salinan nilai, dan modul ES6 mengeluarkan rujukan kepada nilai| -- a.js | -- index.js | -- c.js
// a.js console.log('a.js文件的执行'); const importFun = () => { console.log(require('./c').c); } importFun() module.exports = { importFun }
// index.js const A = require('./a'); console.log('index.js的执行');
// c.js console.log('c.js的运行'); const c = 3 module.exports = { c }
// a.js文件的执行 // c.js的运行 // 3 // index.js的执行
,
bahagian hadapan web// a.js console.log('a.js文件的执行'); export const importFun = () => { import('./c.js').then(({c})=>{ console.log(c) }) } importFun()
// index.js import {importFun} from './a.js' console.log('index.js的执行');
Atas ialah kandungan terperinci Apakah perbezaan antara es6 dan commonjs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!