let与const命令

let命令

基本用法

ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

{
  let a = 10;
  var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

for循环适合使用let命令,计数器i只在循环体内有效。

变量声明

let不存在声明提升,它声明的变量绑定所在的块级作用域,凡是在声明之前就使用这些变量,就会报错。而且不可重复声明。

块级作用域

块级作用域内,外层代码不受内层代码块的影响,而且外层作用域无法读取内层作用域的变量,内层作用域可以定义外层作用域的同名变量。

应该避免在块级作用域内声明函数,如有必要,可以写成函数表达式。

const命令

基本用法

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const的作用域与let命令相同:只在声明所在的块级作用域内有效。

对于符合类型的变量,变量名不指向数据,而是指向数据所在的地址。

const命令只是保证变量名指向的地址不变,并不保证该地址的数据不变。

Last updated

Was this helpful?