1.启动命令中的--harmony
选项可以打开所有已经部署的ES6功能
$ node --harmony
2.使用下面的命令,可以查看所有与ES6有关的单个选项。
$ node --v8-options | grep harmony
3.ES6转化为ES5有下面几种方式:
.直接插入网页(网页头部加载Traceur库文件)
.在线转换
https://google.github.io/traceur-compiler/demo/repl.html#
.命令行转换
安装: npm install -g traceur 运行: traceur calc.js 保存: traceur --script calc.es6.js --out calc.es5.js 上面代码的--script选项表示指定输入文件,--out选项表示指定输出文件。 为了防止有些特性编译不成功,最好加上--experimental选项。
或者
安装这个转玛器。 $ npm install -g es6-module-transpiler 然后,使用$ compile-modules convert file1.js file2.js o参数可以指定转码后的文件名。 $ compile-modules convert -o out.js file1.js
4.let所声明的变量,只在let命令所在的代码块内有效。
let不像var那样,会发生“变量提升”现象。
let不允许在相同作用域内,重复声明同一个变量。
5.匿名函数
6.const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变。
const的作用域与let命令相同:只在声明所在的块级作用域内有效。
const声明的常量,也与let一样不可重复声明。
7.ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。
eg1: var [a, b, c] = [1, 2, 3];
a=1,b=2,c=3
eg2: var [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3
eg3: var [,,third] = ["foo", "bar", "baz"];
third // "baz"
var [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]
eg4: 解构赋值允许指定默认值。
var [foo = true] = [];
foo // true
8.解构赋值不仅适用于var命令,也适用于let和const命令
对于Set结构,也可以使用数组的解构赋值。
[a, b, c] = new Set(["a", "b", "c"])
a // "a"
9.解构不仅可以用于数组,还可以用于对象。
var { foo, bar } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"
数组的元素是按次序排列的,变量的取值由它的位置决定;对象的属性没有次序,变量与属性同名,才能取到正确的值。
解构也可以用于嵌套结构的对象。
var o = { p: [ "Hello", { y: "World" } ]}; var { p: [x, { y }] } = o; x // "Hello" y // "World"
对象的解构也可以指定默认值。
var { x = 3 } = {}; x // 3 var {x, y = 5} = {x: 1}; console.log(x, y) // 1, 5