import
1 import 分为静态引入和动态引入
//静态引入
import { a, b, c } from "./a";
//动态引入
if (condition) {
import('moduleA').then(...);
} else {
import('moduleB').then(...);
}
import用于引入外部模块, 其他脚本等的函数, 对象或者基本类型。
import属于ES6的命令, 它和require不一样, 它会生成外部模块的引用而不是加载模块,等到真正使用到该模块的时候才会去加载模块中的值。
区别:
执行顺序不同:
import 是异步加载
require 是 同步加载
输出不同:
import输出的是值的引用
在预编译阶段,如果读到import,就会生成一个只读的引用,在根据这个引用去取模块的值,也就是模块的值变了,这个值也会跟着变(编译时加载)
require输出的是值的拷贝
加载的是一个对象,对象只有在脚本运行完成之后才会生成,其实就相当于require的这段代码是直接复制到了你引入的代码里面。(运行时加载)