返回

ES6深入理解 - let/const/var

前端

ES6变量声明 - let、const、var

在ES6中,变量声明主要使用let、const、var三个。其中,let和const是ES6新增的关键字,而var是ES5中使用的关键字。这三个关键字在变量声明和作用域方面有着不同的特性。

1. let

let声明的变量具有块级作用域,只在声明所在的块级作用域内有效。这意味着,在块级作用域之外,无法访问let声明的变量。

2. const

const声明的变量是常量,一旦声明就不能被重新赋值。const声明的变量也具有块级作用域,只在声明所在的块级作用域内有效。

3. var

var声明的变量具有函数级作用域,在声明所在函数内有效。这意味着,在函数之外,无法访问var声明的变量。

let、const、var的比较

特性 let const var
作用域 块级作用域 块级作用域 函数级作用域
可重新赋值
声明位置 可以在块级作用域的任何位置 可以在块级作用域的任何位置 必须在函数的开头声明

ES6变量声明的示例

1. let示例

{
  let x = 10;
  console.log(x); // 输出:10
}

console.log(x); // 报错:x is not defined

在这个示例中,变量x使用let声明,只在声明所在的块级作用域内有效。在块级作用域之外,无法访问变量x,因此在console.log(x)语句中会报错。

2. const示例

const x = 10;
x = 20; // 报错:Assignment to constant variable.

在这个示例中,变量x使用const声明,是常量,一旦声明就不能被重新赋值。因此,在x = 20语句中会报错。

3. var示例

function foo() {
  var x = 10;
}

console.log(x); // 报错:x is not defined

在这个示例中,变量x使用var声明,具有函数级作用域。这意味着,只能在函数foo内部访问变量x。在函数foo外部,无法访问变量x,因此在console.log(x)语句中会报错。

ES6变量声明的注意事项

在使用ES6变量声明时,需要注意以下几点:

  • let和const声明的变量只能在声明所在的块级作用域内使用。
  • const声明的变量是常量,一旦声明就不能被重新赋值。
  • var声明的变量具有函数级作用域,只能在声明所在函数内使用。
  • 尽量使用let和const声明变量,避免使用var。

总结

ES6中的let、const、var三个关键字用于声明变量,它们在作用域和可重新赋值性方面有着不同的特性。let声明的变量具有块级作用域,const声明的变量是常量,var声明的变量具有函数级作用域。在使用ES6变量声明时,需要注意这些特性,以避免出现错误。