js var let const 的区别
一.在ES6(ES2015)出现之前,JavaScript中声明变量就只有 var 关键字,函数声明是 function 关键字,而在ES6之后,声明的方式有 var 、 let 、 const 、 function 、 class
二.var 解释
1.如果使用关键字 var 声明一个变量,那么这个变量就属于当前的函数作用域,如果声明是发生在任何函数外的顶层声明,那么这个变量就属于全局作用域。
举例说明:
var a=1;//全局变量
function arr(){
var a=2;//局部变量
console.log(a);}//输出2
arr()
console.log(a);//输出1
2.如果在声明变量时,省略 var 的话,该变量就会变成全局变量。
举例说明:
var a=1;//此处声明的是全局变量
function arr(){
a=2;//此处 也是全局变量
console.log(a);//输出2
}
arr();
console.log(a);//输出2
二.let 解释
1.let具有以下特点
- let 声明的变量具有块作用域的特征。
- 在同一个块级作用域,不能重复声明变量。
- let 声明存在暂时性死区(TDZ)。
function arr(){
let a=1;
let a=2;//报错 a已定义
consloe.log(a)
}
三.const 解释
cons他声明的是常量, const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。
const a =1; console.log(a);//输出1 const a=2; console.log(a);//uncaught typeErro
浙公网安备 33010602011771号