1. 程式人生 > >ES6筆記一

ES6筆記一

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筆記一