声明变量的关键词有三个:var、let、const。这三个有什么区别呢?好多人傻傻分不清楚。今天,就给大家详细的说一下。
let和const是2015年才被引入的两个关键词,之前声明变量只有var。
所以,let和const在var的基础上做了很多功能上的修改。比如,我们上篇文章讲JS提升的时候就提到了,let和const声明的变量是不会被提升的。相比较var,let和const更严谨了;在JS作用域中,我们也提到了,var声明的变量没有块作用域,可以使用let声明变量使其拥有块作用域,这样看来,let比var更安全了。
除了上面说的两点区别以外,它们三个还有以下区别:
重复声明
var是可以重复声明的,不管在任何位置。比如:
var a = 1;
var a = 2;
在相同的作用域,或在相同的块中,let是不允许重新声明的。
通过 let 重新声明一个 var 变量或者let变量是不允许的。
通过 var 重新声明一个 let 变量也是不允许的。
比如:
var x = 10; // 允许
let x = 6; // 不允许
let y = 20; //允许
let y = 30; //不允许
let z = 2; //允许
var z = 3; //不允许
{