JavaScript let 和 const
JavaScript let 和 const
在ES6之前,JavaScript只有全局变量和函数作用域,但是在ES6之后,我们可以使用let和const来声明块级作用域。
let
let
声明的变量具有块级作用域,它声明的变量只能在当前代码块中使用,而不能在外部访问。在同一个作用域中不能重复声明同一个变量。
用法:
let variableName = value;
示例:
let x = 10;
console.log(x); // Output: 10
if (true) {
let x = 20;
console.log(x); // Output: 20
}
console.log(x); // Output: 10
在上面的代码中,我们首先声明了一个变量x
并赋值为10,然后在if语句块中声明一个新的变量x
并赋值为20,最后打印变量x
值,我们可以看到输出分别为10和20。
const
const
用来声明常量,它的值在声明后不可修改,和let
一样,const
也有块级作用域。在同一个作用域中不能重复声明同一个常量。在声明时必须初始化,否则会报错。
用法:
const constantName = value;
示例:
const PI = 3.14;
console.log(PI); // Output: 3.14
PI = 3.141592653; // Error: Assignment to constant variable
if (true) {
const PI = 3.141592653;
console.log(PI); // Output: 3.141592653
}
console.log(PI); // Output: 3.14
在上面的代码中,我们首先声明了一个常量PI
并赋值为3.14,然后尝试给PI
重新赋值会报错,因为常量的值不可改变。然后在if语句块中声明一个新的常量PI
并赋值为3.141592653,最后打印变量PI
值,我们可以看到输出分别为3.141592653和3.14。
let vs const
- 在使用
let
时,变量的值可以改变; - 在使用
const
时,变量的值不可改变。
使用const
声明常量比使用let
更安全,因为它可以避免在代码中意外地更改变量值。但是,在实际编码中,使用let
和const
可以更好地组合使用,能够更好的表现出变量和常量的作用。