概述
ES6模块的设计思想是尽量静态化,使编译时就能确定模块的依赖关系和输入输出的变量.
ES6模块通过export
命令指定输出的代码,通过import
命令输入
import { one, two, three } from 'fs';//编译时加载或静态加载
严格模式使用
ES6的模块自动采用严格模式,无论加没加use strict
严格模式的限制:
变量必须声明后再使用
函数的参数不能有同名属性,否则报错
不能使用with
语句
不能对只读属性赋值,否则报错
不能使用前缀0表示八进制数,否则报错
不能删除不可删除的属性,否则报错
不能删除变量<code>delete prop</code>,会报错,只能删除属性delete global[prop]
<code>eval</code>不会在它的外层作用域引入变量
<code>eval</code>和arguments
不能被重新赋值
arguments不会自动反映函数参数的变化
不能使用arguments.callee
不能使用arguments.caller
禁止this指向全局对象
不能使用fn.caller
和fn.arguments
获取函数调用的堆栈
增加了保留字(比如protected
、static
和interface
)