📜  JavaScript 中静态和常量的区别(1)

📅  最后修改于: 2023-12-03 15:16:09.535000             🧑  作者: Mango

JavaScript 中静态和常量的区别

在 JavaScript 中,静态和常量都是一些固定不变的值,但它们之间有区别。

静态

静态变量是在类级别上定义的,可以在多个实例之间共享。它们只会在类被加载时分配一次内存,并在整个生命周期中保持不变。在 JavaScript 中,使用 static 关键字可以创建静态变量。

以下是一个使用静态变量的示例代码:

class Circle {
  static pi = 3.14159;
  constructor(radius) {
    this.radius = radius;
  }
  area() {
    return Circle.pi * this.radius * this.radius;
  }
}

const c1 = new Circle(5);
console.log(c1.area()); // 78.53975

const c2 = new Circle(10);
console.log(c2.area()); // 314.159

在上面的代码中,piCircle 类的静态变量。它的值为 3.14159,所有创建的 Circle 实例都可以访问该变量。area() 方法使用 Circle.pi 计算圆的面积。即使创建了多个 Circle 实例,静态变量 pi 的值始终保持不变。

常量

常量是一种不能被改变的变量,它们根据程序需要被赋值,并在整个生命周期中保持不变。在 JavaScript 中,使用 const 关键字可以创建常量。

以下是一个使用常量的示例代码:

const PI = 3.14159;

function calculateCircleArea(radius) {
  return PI * radius * radius;
}

console.log(calculateCircleArea(5)); // 78.53975

console.log(calculateCircleArea(10)); // 314.159

在上面的代码中,PI 是一个常量,分配一次的同时也不能更改这个值。 calculateCircleArea() 函数使用常量 PI 计算圆的面积。常量始终具有相同的值,因此不需要在每次使用时重新计算。

总的来说,静态变量是在类中定义的,并且可以在多个实例之间共享,而常量则是在程序中定义的,并且始终保持不变。在实际开发中,开发者可以根据需要使用静态变量和常量。