Javascript visual studio和chrome的let和const问题

Javascript visual studio和chrome的let和const问题,javascript,visual-studio,Javascript,Visual Studio,我有一个奇怪的问题,google chrome不会阅读es6,比如let或const或在对象内部定义函数的新方法 如果我使用var它会很好地工作: var cat = { name: 'meow', age: 5, eyeColor: 'black' } 如果我使用let或const它将不起作用: let cat = { name: 'meow', age: 5, eyeColor: 'black' } 这给了我一个错误: cat is not

我有一个奇怪的问题,google chrome不会阅读es6,比如
let
const
或在对象内部定义函数的新方法

如果我使用
var
它会很好地工作:

var cat = {
    name: 'meow',
    age: 5,
    eyeColor: 'black'
}
如果我使用
let
const
它将不起作用:

let cat = {
    name: 'meow',
    age: 5,
    eyeColor: 'black'
}
这给了我一个错误:

cat is not defined
好的,我想了些什么,首先是我的文件夹结构:

build 
  assets
     js
        app.js
        vendors.js

source
  js
     app.js
     vendors

gulpfile.js
我正在源文件夹中编写所有代码,并将其gulp编译到build文件夹中,这是我的gulp文件(抱歉,文件太长):


当我直接在build js文件中编写代码时,它工作得很好,但是如果我在源文件夹中编写js,它将只编译var,但是如果我尝试let或const,它将不会使用
let
更改变量
cat
的范围。声明中没有生成错误(打开Chrome控制台并粘贴您的示例以向自己证明这一点)

报告说:

let
语句声明块作用域局部变量

比较给出的例子。下面是让:

let x = 1;

if (x === 1) {
    let x = 2;

    console.log(x);
    // expected output: 2
}

console.log(x);
// expected output: 1
下面是
var

var x = 1;

if (x === 1) {
    var x = 2;

    console.log(x);
    // expected output: 2
}

console.log(x);
// expected output: 2
注意到每个示例的第一个和第二个输出的差异吗?简而言之,错误实际上存在于尚未共享的代码中。此示例突出显示了不同之处:

if (true) {
    var myVariable = 1;
    let myOtherVariable = 2;
}
console.log(myVariable);      //Outputs '1'
console.log(myOtherVariable); //Fails

好吧,我修复了它,以防有人遇到这个问题。你所要做的就是将babel添加到手表任务中,如下所示:

gulp.task('scripts', function() {
    return gulp.src('source/js/*.js')
        .pipe(babel({
            presets: ['@babel/env']
        }))
        .pipe(uglify())
        .pipe(plumber())
        .pipe(gulp.dest('build/assets/js'))
});

请说得更具体些。Visual Studio代码?哪个版本?Chrome的哪个版本?哪个应用程序显示该错误消息?请添加完整的代码。可能您正试图检索超出其作用域的变量?请让我们知道您在代码中声明变量的位置以及尝试使用变量的位置。var&Let的澄清很好,是的,OP需要共享他的代码。代码与我共享的代码完全相同,我的java脚本文件完全是空的,我正在练习对象,我在遵循一个教程,它给了我这个错误,我使用最新版本或chrome和visual studio代码
gulp.task('scripts', function() {
    return gulp.src('source/js/*.js')
        .pipe(babel({
            presets: ['@babel/env']
        }))
        .pipe(uglify())
        .pipe(plumber())
        .pipe(gulp.dest('build/assets/js'))
});