返回
ES6深入理解 - let/const/var
前端
2024-01-31 09:04:25
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变量声明时,需要注意这些特性,以避免出现错误。