ES6 const声明常量以及特点

2023-05-22 11:19:18 浏览数 (1)

ES6(ECMAScript 2015)引入了const关键字,用于声明常量。在JavaScript中,常量是指其值在声明后不能被重新赋值的变量。const声明的常量具有以下特点:

  1. 常量值不能被重新赋值:一旦用const声明一个常量并初始化赋值,就不能再改变其值。任何尝试重新赋值的操作都会导致语法错误。
  2. 块级作用域:const具有块级作用域,类似于let关键字。常量在声明的块(如函数内部或语句块)中是可见的,而在块之外是不可见的。
  3. 重复声明不允许:在同一个作用域中,不允许重复声明已经存在的常量。如果尝试重复声明,将会抛出一个语法错误。
  4. 必须初始化:const声明的常量在声明时必须进行初始化赋值。否则,会抛出一个语法错误。

下面是关于const的详细文档,以及一些示例来帮助理解:

const的语法:

代码语言:javascript复制
const variableName = value;
  • variableName是常量的名称,可以是任意合法的标识符。
  • value是常量的初始值,可以是任何合法的JavaScript表达式。

特点示例:

常量声明与赋值:

代码语言:javascript复制
const PI = 3.14159;

在上面的示例中,我们声明了一个名为PI的常量,并将其初始化为3.14159。一旦初始化后,PI的值不能再改变。

常量的块级作用域:

代码语言:javascript复制
function calculateArea() {
  const width = 10;
  if (true) {
    const height = 20;
    const area = width * height;
    console.log(area); // 输出200
  }
  console.log(width); // 输出10
  console.log(height); // 抛出ReferenceError: height未定义
}
calculateArea();

在上面的示例中,我们在calculateArea函数内部使用了const关键字声明了widthheight常量。在if语句块内部,我们可以访问和使用widthheight常量。然而,一旦我们离开了if语句块,尝试访问height常量将导致ReferenceError,因为它的作用域仅限于if语句块。

重复声明常量会引发错误:

代码语言:javascript复制
const value = 10;
const value = 20; // 抛出SyntaxError: 标识符'value'已经被声明

在上面的示例中,我们尝试使用相同的常量名称value进行重复声明,这将导致一个语法错误。每个常量名称在同一作用域中只能声明一次。

常量必须初始化:

代码语言:javascript复制
const name; // 抛出SyntaxError: 常量声明缺少初始化

在上面的示例中,我们没有给name常量提供初始值,这将导致一个语法错误。使用const声明常量时,必须在声明时进行初始化。

0 人点赞