在“红宝书”第三章语法基础的3.3变量部分,核心内容如下:
var关键字:
- 用途:用于声明变量,可以存储任何类型的值。
- 作用域:函数作用域,即在包含该变量的函数内部有效。
- 变量提升:var声明的变量会被提升到函数作用域的顶部,但赋值不会提升,默认值为undefined。
- 重复声明:多次使用var声明同一个变量会合并为一次声明,以最后一次赋值为准。
- 全局变量:省略var关键词直接书写变量名会被视为全局变量,在严格模式下会报错。
let关键字:
- 声明范围:块作用域,即在包含let关键词的块内部有效。
- 不能重复声明:同一个变量只能使用let声明一次。
- 无变量提升:let声明的变量不会提升到作用域顶部,使用前必须声明。
- for循环中的行为:在for循环中,let声明的迭代变量会在每次循环时及时更新。
const关键字:
- 初始化:声明变量时必须同时赋值,且之后不能改变。
- for循环中的使用:不能在for循环中声明迭代变量,但可以在循环内声明常量。
- 限制:const声明的是常量,不能重新赋值,但如果是对象或数组,其属性或元素可以修改。
- 作用域:与let相同,为块作用域。
声明风格与最佳实践:
- 优先使用const:对于不需要改变的变量,应优先使用const声明。
- 次选let:对于需要改变的变量,使用let声明。
- 避免使用var:由于var的作用域和提升特性可能导致不易察觉的错误,因此应尽量避免使用。