ES6

102 阅读1分钟
$ npm install --save-dev babel-preset-es2015
$ npm install --save-dev babel-preset-stage-0
$ npm install --save-dev babel-preset-stage-1
$ npm install --save-dev babel-preset-stage-2
$ npm install --save-dev babel-preset-stage-3

$ npm install --global babel-cli
$ npm install --save-dev babel-cli
$ cnpm i -D babel-cli
// .babelrc
{
    "presets": [
        "es2015",
        "stage-2"
    ],
    "plugins": [
        
    ]
}

es6 -> es5

  1. let
for(var i=0;i<3;i++){
    console.log(i);
}
console.log(i);
for(let i=0;i<3;i++){
    console.log(i);
}
console.log(i); //undefine
var a=[];
for(var i=0;i<3;i++){
    a[i]=i;
}
console.log(a[2]);   //2
var a=[];
for(var i=0;i<3;i++){
    a[i]=function(){
        console.log(i)
    }
}
a[2]      //(console.log(i)) i指向全局
a[2]()   //3
var a = [];
for (var i = 0; i < 10; i++) {
    (function(j){
      a[j] = function () {
        console.log(j);
      };
    })(i);
}
a[6]()   //6
for(var i=0;i<3;i++){
    var i="haha";
    console.log(i);
}
// haha*1
for(let i=0;i<3;i++){
    let i="haha";
    console.log(i);
}
//  haha*3
var tmp ='haha';
function f() {
  console.log(tmp);
}
f(); // haha
var tmp ='haha';
function f() {
  var tmp = 'hello world';
  console.log(tmp);
}
f(); //hello world
var tmp ='haha';
function f() {
  console.log(tmp);
  var tmp = 'hello world';
}
f(); //undefine
var tmp ='haha';
function f() {
  console.log(tmp);
  if (false) {
    var tmp = 'hello world';
  }
}
f(); // undefined   变量提升 覆盖外层变量
  1. const
  2. global
    1. 不可重新赋值
  3. 解构赋值 模式 变量
    let x;
    {x} = {x:1}  //报错
    
    {x} 当成代码块
    let x;
    ({x} = {x:1})
    x   //1
    
    let { __proto__: x } = 123;
    
  4. undefined 触发默认值
(function(){
    console.log("a");
})()
(function(){
    console.log("a");
})()
function(){
    console.log("a");
}()   //报错   函数定义不能直接跟() 会被当成字符串执行
(function(){
    console.log("a");
}());

+function(){
    console.log("a");
}()   //返回值 NaN

!function(){
    console.log("a");
}()   // true

void function(){
    console.log("a");
}()   // undefined

var a = function(){
    console.log("a");
}()


this 调用时 定义时


  1. Babel 入门教程
  2. es6

Generator 函数的含义与用法

Thunk 函数的含义和用法

co 函数库的含义和用法

async 函数的含义和用法

ES6 的功能侦测库 ES-Checker