import&require

87 阅读1分钟

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命令会提升到整个模块的头部。