vue-cli关于es6的问题
发布于 6 年前 作者 yuanshuai007 2284 次浏览 来自 问答
let a=1;
for(let i=0;i<3;i++){
    console.log(a);
    let a=2;
}

在浏览器的控制台中运行会报错,原因我知道。 在vue-cli中运行会输出undefined,2,2。如果我把loader中的babel注释掉结果还是一样的

我想问的是为什么会这样?如何让vue-cli直接运行es6(让结果和控制台中的一样)?

2 回复

babel转码后不是let定义的。是变成了var

var a = 1;
for (var i = 0; i < 3; i++) {
    console.log(_a);
    var _a = 2;
}

var有变量提升,所以不会报错。

@noe132 for里面就是a不是_a(块级作用域)。问题是把loader中的babel注释掉结果还是一样的???

回到顶部