亲爱的小伙伴,你还在寻找js中var、let、const之间有哪些区别吗,下边我就来分享一些自己对var、let、const这三者之间的区别的理解把,希望可以帮助到你哟!
1.var
特点:1.变量声明提升 2.同一变量可以重复声明 3.没有块级作用域
1.1变量声明提升
在使用var声明a变量之前打印a变量
打印结果为undefined
这就证明了var所声明的变量发生了变量声明提前,相当于
var a;
console.log(a)
a = 10
1.2同一变量可以重复声明
在全局中重复声明a变量
最终打印结果为3
1.3没有块级作用域
在代码块中使用var声明a变量
但仍然可以打印出a变量的值,这就说明a变量没有块级作用域
2.let
特点:1.变量声明不会提升 2.同一变量不可重复声明 3. 拥有块级作用域
2.1 变量声明不会提升
在使用let声明的a变量之前打印a
结果报错,说明le变量声明不会提升
2.2 同一变量不可重复声明
使用let重复声明a变量,如下图可见,a变量不可重复声明
2.3 拥有块级作用域
在代码块中使用let声明a变量
打印结果报错 “a is not defined”,说明外部无法访问代码块当中的a变量,即说明let所声明的变量具有块级作用域
3.const
特点:1.变量声明不会提升 2.同一变量不可重复声明 3.拥有块级作用域 4.变量在声明时就需要赋值,且变量的值不可修改。
1.变量声明不会提升
在使用const声明a变量之前,打印a变量
结果报错,说明const变量声明不会提升
2.同一变量不可重复声明
使用const重复声明a变量,如下图可见,a变量不可重复声明
3.拥有块级作用域
在代码块中使用const声明a变量
打印结果报错 “a is not defined”,外部无法访问到代码块中的a变量,说明const声明的变量具有块级作用域。
4.变量在声明时就需要赋值,且变量的值不可修改。
如下图,在使用const声明a变量时,不为a赋值,代码提示错误,说明const在声明变量时就需要赋值。
在使用const声明a变量并初始化变量的值为10,而后修改a变量的值为5
打印结果报错,说明使用const声明的变量的值不可修改