const用法是什么?

1. const的基本用法

在Javascript中,const是一个常用的关键字,用于声明常量。与之类似的关键字包括let和var。

const的基本语法如下:

const constantName = "value";

代码中,constantName是常量的名称,它的值被初始化为"value",这个值不能被改变。

使用const声明的变量只能在声明时被初始化一次。这意味着在之后的代码中不能再对它进行赋值,也不能将其重新声明为一个新的变量。

以下的示例代码演示了如何使用const声明一个常量:

const PI = 3.141592653589793;

console.log(PI); // 3.141592653589793

PI = 42; //TypeError: Assignment to constant variable.

在这个例子中,我们声明了一个名为PI的常量,并将其初始化为数值3.141592653589793。我们尝试改变PI的值,但是会引发TypeError错误。

2. const与let的区别

2.1 变量作用域

在Javascript中,let关键字用于声明一个块作用域的变量,其作用域是指在声明它的代码块内部,包括嵌套的代码块。

相反,用const声明的变量则不能重新赋值,但它们仍然具有与let关键字相同的作用域规则。

以下示例代码演示了使用let和const声明变量的作用域规则:

function exampleScope() {

let x = 1;

const y = 2;

if (true) {

let x = 3;

const y = 4;

console.log("x in if statement: ", x); // 3

console.log("y in if statement: ", y); // 4

}

console.log("x outside if statement: ", x); // 1

console.log("y outside if statement: ", y); // 2

}

exampleScope();

在这个示例代码中,我们在函数exampleScope中声明了两个变量x和y。在if语句中,我们又声明了两个同名变量x和y。

由于let关键字声明的变量具有块级作用域,因此if语句中声明的变量只在该块内有效。由此产生的输出是:

x in if statement: 3

y in if statement: 4

x outside if statement: 1

y outside if statement: 2

由于const关键字声明的变量不能被重新赋值,因此在if语句中赋值给y会导致TypeError。

function exampleScope() {

let x = 1;

const y = 2;

if (true) {

let x = 3;

const y = 4;

console.log("x in if statement: ", x); // 3

y = 5;

console.log("y in if statement: ", y); // TypeError

}

console.log("x outside if statement: ", x); // 1

console.log("y outside if statement: ", y); // 2

}

exampleScope();

运行代码会发现,TypeError被抛出了。

2.2 变量声明提升

类似于使用var关键字声明变量时的行为,let关键字声明的变量和函数名会被提升到块的顶部。但是使用const声明的变量不会被提升。

以下示例代码演示了它们之间的不同点:

function exampleHoisting() {

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

console.log(y); // ReferenceError: y is not defined.

let x = 1;

const y = 2;

}

exampleHoisting();

不像使用var关键字时x值被赋予了undefined值,这里使用let关键字声明的变量x会引发ReferenceError。而使用const声明的变量y则会引发同样的错误。

3. 常量数组和对象

虽然使用const关键字声明的变量不能被重新赋值,但是我们仍然可以改变它们所包含的对象或数组的内容。

3.1 常量数组

以下示例代码演示了如何创建一个常量数组:

const fruits = ["apple", "banana", "orange"];

console.log(fruits); // ["apple", "banana", "orange"]

虽然我们不能使用以下代码重写整个数组:

fruits = ["pear", "grape"];

console.log(fruits); // TypeError: Assignment to constant variable.

但我们可以改变数组中单个元素的值:

fruits[0] = "pear";

console.log(fruits); // ["pear", "banana", "orange"]

上述代码演示了使用const关键字创建一个常量数组,并更改其第一个元素的值。

3.2 常量对象

以下示例代码演示了如何创建一个常量对象:

const person = {

name: "Alice",

age: 30

};

console.log(person); // {name: "Alice", age: 30}

虽然我们不能使用以下代码重写整个对象:

person = {

name: "Bob",

age: 40

};

console.log(person); // TypeError: Assignment to constant variable.

但我们可以改变对象中的属性:

person.name = "Bob";

console.log(person); // {name: "Bob", age: 30}

上述代码演示了使用const关键字创建一个常量对象,并更改其name属性的值。

4. 总结

在Javascript中,使用const关键字可以声明一个常量,其值在声明时被初始化,不能被重新赋值。可以将常量声明为数组或对象。使用const关键字声明的变量仍然遵循与使用let关键字声明的变量相同的作用域规则,也面临着变量提升问题。

在编写Javascript代码时,还需要注意命名约定。常量的名称通常用全大写字母命名。

后端开发标签