ES6筆記一
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#
http://babeljs.io/repl/
.命令行轉換
安裝: 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
ES6筆記一