let
- let 声明的变量只在其所在的代码块内有用
- 不存在变量提升
- 只要在会计作用域中存在let命令,它所声明的变量就绑定这个区域
- 不允许重复声明
ES6块级作用域
- 外层代码不受内存代码块的影响
- ES6规定,在块级作用域之中,函数声明类似于let
- 允许在块级作用域内声明函数
- 函数声明会提升到所在块级作用域的头部
const
- const声明一个只读常量,一旦声明,常量的值就不能改变
- 只在声明所在的块级作用域内有效
- const声明的常量与let命令相同,只在声明所在的块级作用域内有效
- const不存在变量提升,同样存在暂时性死区,只能在声明后使用。
本质:cosnt实际上保存的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。
对于简单数据类型,值就保存在变量指向的内存地址中,因此等同于常量。
但是对于复杂数据类型,变量指向的内存地址保存的只是一个指针,const只能保证这个指针固定,至于它指向的数据结构是不是可变的,这就完全不能控制。----指针固定
原文地址:https://www.cnblogs.com/houfee/p/10331296.html
时间: 2024-11-05 13:31:25