2021.4.7早会问题(const,let和var的区别)
2021-04-07 10:00:54
## const,let和var的区别
#### 1.var声明变量存在变量提升,let和const不存在变量提升
```jsx
console.log(a); // undefined ===> a已声明还没赋值,默认得到undefined值
var a = 100;
console.log(b); // 报错:b is not defined ===> 找不到b这个变量
let b = 10;
console.log(c); // 报错:c is not defined ===> 找不到c这个变量
const c = 10;
```
#### 2.变量作用域
在JavaScript中,在方法体外外用var定义的变量其它方法可以共享,在方法中用var定义的变量只有该方法内生效。
而let、const都是块级局部变量,只在当前代码块起作用
```jsx
{
let a = 1
}
console.log(a) // undefined
```
#### 3.同一作用域下let和const不能声明同名变量,而var可以
#### const特性和let完全一样,不同的是声明变量的时候必须赋值,且只能进行一次,即声明后不能更改,如果声明的是复合类型的数据,可以修改他的属性