ES6语法中let和const变量使用

2026-01-14 10:03:06

1、打开WebStrom开发工具,新建‘test.js’文件,并写代码如下:

{


   let a = 0;
   var b = 5
}
console.log(b)
console.log(a)

ES6语法中let和const变量使用

2、运行上述代码,结果如下:

5

C:\Users\Administrator\WebstormProjects\Es6Test\test.js:7

console.log(a)

            ^

ReferenceError: a is not defined

在{代码块},let定义的是局部变量,只在大括号内有效,而var定义的变量是全局有效。所以只能打印b变量,a获取不到

ES6语法中let和const变量使用

3、修改代码,测试在for循环中的var和let变量的不同,完整代码如下:

for(let i=0; i<3; i++){


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

ES6语法中let和const变量使用

4、运行上述代码,结果如下:

10

10

10

1

1

1

3

解释一下原因,在for循环小括号也是一个代码块,小括号里的不影响外面的let定义的变量,所以第一个for循环打印出来的是大括号里变量的值。第二个for循环小括号里是var定义的变量,是全局的,在外部依然可以访问到,但是在循环体的大括号里,打印的let定义的同名变量。

ES6语法中let和const变量使用

5、let变量不允许同个作用于内重复声明,下面代码执行会出现错误

let a =5;


let a =10;

ES6语法中let和const变量使用

6、var定义的变量可以变量提升,也就是变量的定义可以在使用前,let的则不行,测试代码如下:

ES6语法中let和const变量使用

7、运行上述代码,结果如下:

undefined

C:\Users\Administrator\WebstormProjects\Es6Test\test.js:4

console.log(b);

            ^

ReferenceError: b is not defined

ES6语法中let和const变量使用

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢