ES6笔记一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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笔记一的主要内容,如果未能解决你的问题,请参考以下文章

译丨Yarn - Javascript 新一代套件管理

JavaScript 学习笔记-- ES6学习介绍以及Babel的使用

ECMAScript 6 学习笔记

使用babel转码器,让浏览器支持es6语法

ES6 从入门到精通 # 01:ES6 介绍

JavaScript的ES6语法13下一代ES的展望