const修改的也可变
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保证的数据不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址)。
export default和export的区别
1、export与export default均可用于导出常量、函数、文件、模块等。
2、你可以在其它文件或模块中通过import+(常量|函数|文件|模块)名的方式,将其导入,以便能够对其进行使用。
3、在一个文件或模块中,export、import可以有多个,export default仅有一个
4、通过export方式导出,在导入时要加{},export default则不需要。
末尾的逗号
JS一开始就允许给数组的末尾加逗号,ES5开始允许给对象末尾加逗号,ES2017允许给函数参数末尾加逗号,json末尾也可以加逗号。
Promise对象
这是ES6引入的封装异步操作的统一接口。Promise本身是一个构造函数,提供了resolve和reject两个方法,一旦异步操作成功结束,就调用resolve方法,一旦异步操作失败,就调用reject方法。
module
es6意义最大的语法变化,就是引入模块。
一个模块内部,使用export命令转出对外的接口。
// lib/math.js
export function sum(x, y) {
return x + y;
}
export var pi = 3.141593;
上面的模块输出了sum和pi两个接口。
import命令用于引入该模块。
// app.js
import * as math from "lib/math";
alert("2π = " + math.sum(math.pi, math.pi));