1. 安装全局 babel-cli

 node install -g babel-cli

2.安装局部 babel-cli 和 babel-preset-es2015

npm install --save-dev  babel-cli  babel-preset-es2015

3.配置.babelrc (项目根目录下新建文件.babelrc)

 

{
  "presets": [
    "es2015"
  ],
  "plugins":[]
}

 

4.执行es6转化es5

babel src/index.js -o dist/index.js

 4.1src目录下的index.js文件的内容

var a = 1;
// console.log(a)
// window.onload = function(){
//   this.console.log(a)
// }
let b = 1;
{
  var a = 2;
  let b = 2;
  {
    var a = 3;
    let b = 3;
  }
}
console.log(a)
console.log(b)

for(let i = 0; i < 10; i++){
  console.log(i)
  for(let i=0;i<10;i++){
    console.log(i)
  }
}

 

 转义结果如下如:

 

页面效果打印效果:

 

 

 可以看出 var声明的变量a会被更新掉,变为3;使用let声明的变量b没有被更新仍旧是1,通过对比转义为es5的文件可以看出 第二个声明的let b(块级) 会被转义为var _b;第三层声明的 let b(块级)会被转义为 var _b2;

所以在es6中通过let声明的变量都是被处理过的,相当于给其他变量赋值一样 所以不会影响其他let声明的b(前提是在不同的块级内)

 

posted on 2018-06-07 16:34  月半星  阅读(543)  评论(0编辑  收藏  举报