script,[object Object]

# 10.let、const、var 的区别有哪些?

# 声明

声明方式 变量提升 暂存性死区 重复声明 块级作用域
var 存在 不存在 可以 不存在
let 不存在 存在 不可以 存在
const 不存在 存在 不可以 存在
  1. let/const 定义的变量不会出现变量提升,而 var 定义的变量会提升。

  2. 相同作用域中,let 和 const 不允许重复声明,var 允许重复声明。

  3. const 声明变量时必须设置初始值

  4. const 声明一个只读的常量,这个常量不可改变。

这里有一个非常重要的点即是:在JS中,复杂数据类型,存储在栈中的是堆内存的地址,存在栈中的这个地址是不变的,但是存在堆中的值是可以变得。有没有相当常量指针/指针常量~

const b = {
    age: 20,
    name: "xx"
}
const a = b;
b.age = 22;
console.log(a.age)  //22
1
2
3
4
5
6
7

关于评论

评论前请填好“昵称”、“邮箱”这两栏内容,否则不会收到回复,谢谢!

  • +
  • -