1.a.js import b.js的情况下执行a.js的执行过程
1.预编译a.js
2.关键词import
3.预编译b.js
4.执行b.js
5.执行a.js
2.写输出example-1
a.js:
import {bar} from './b'
console.log('a.js')
console.log(bar)
export let foo = 'foo'
b.js:
import {foo} from './a'
console.log('b.js')
console.log(foo)
export let bar = 'bar'
run a.js output:
b.js
undefined
a.js
bar
3.写输出example-2
a.js:
import {bar} from './b'
console.log('a.js')
console.log(bar())
function foo() { return 'foo' }
export {foo}
b.js:
import {foo} from './a'
console.log('b.js')
console.log(foo())
function bar() { return 'bar' }
export {bar}
run a.js output:
b.js
foo
a.js
bar
import & require
require表示的是运行时加载。而import表示的是编译时加载(效率更高),由于是编译时加载,所以import命令会提升到整个模块的头部。