前端必知必会-JavaScript Const

文章目录

  • JavaScript Const
    • 无法重新赋值
    • 必须赋值
    • 何时使用 JavaScript const?
    • 常量对象和数组
    • 常量对象
    • var、let 和 const 之间的区别
    • 块作用域
    • 重新声明
    • 提升
  • 总结


JavaScript Const

const 关键字是在 ES6 (2015) 中引入的

使用 const 定义的变量无法重新声明

使用 const 定义的变量无法重新赋值

使用 const 定义的变量具有块作用域

无法重新赋值

使用 const 关键字定义的变量无法重新赋值:

示例

const PI = 3.141592653589793;
PI = 3.14; // 这将给出错误
PI = PI + 10; // 这也会给出错误

必须赋值

JavaScript const 变量在声明时必须赋值:

正确

const PI = 3.14159265359;

不正确

const PI;
PI = 3.14159265359;

何时使用 JavaScript const?

当您知道不应更改值时,请始终使用 const 声明变量。

在声明以下对象时使用 const:

  • 新数组
  • 新对象
  • 新函数
  • 新 RegExp

常量对象和数组

关键字 const 有点误导。

它不定义常量值。它定义对值的常量引用。

因此,不能:

  • 重新分配常量值
  • 重新分配常量数组
  • 重新分配常量对象
    但可以:
  • 更改常量数组的元素
  • 更改常量对象的属性
  • 常量数组
    您可以更改常量数组的元素:

示例

// 您可以创建一个常量数组:

const cars = ["Saab", "Volvo", "BMW"];

// 您可以更改元素:

cars[0] = "Toyota";

// 您可以添加元素:
cars.push("Audi");

但您不能重新分配数组:

示例

const cars = ["Saab", "Volvo", "BMW"];

cars = ["Toyota", "Volvo", "Audi"]; // 错误

常量对象

您可以更改常量对象的属性:

示例

// 您可以创建一个 const 对象:
const car = {type:"Fiat", model:"500", color:"white"};

// 您可以更改属性:
car.color = "red";

// 您可以添加属性:
car.owner = "Johnson";

但您不能重新分配对象:

示例

const car = {type:"Fiat", model:"500", color:"white"};

car = {type:"Volvo", model:"EX60", color:"red"}; // 错误

var、let 和 const 之间的区别

作用域 重新声明 重新分配 提升 绑定 this
var
let
const
  • let 和 const 具有块作用域。
  • let 和 const 不能重新声明。
  • let 和 const 必须在使用前声明。
  • let 和 const 不绑定到 this。
  • let 和 const 不提升。
  • var 不必声明。
  • var 被提升。
  • var 绑定到 this。

块作用域

就块作用域而言,使用 const 声明变量与 let 类似。

在此示例中,块中声明的 x 与块外声明的 x 不同:

示例

const x = 10;
// 此处 x 为 10

{
const x = 2;
// 此处 x 为 2
}

// 此处 x 为 10

重新声明

在程序的任何地方都允许重新声明 JavaScript var 变量:

示例

var x = 2; // 允许
var x = 3; // 允许
x = 4; // 允许

不允许在同一作用域中将现有 var 或 let 变量重新声明为 const:

示例

var x = 2; // 允许
const x = 2; // 不允许

{
let x = 2; // 允许
const x = 2; // 不允许
}

{
const x = 2; // 允许
const x = 2; // 不允许
}

不允许在同一作用域中重新分配现有的 const 变量:

示例

const x = 2; // 允许
x = 2; // 不允许
var x = 2; // 不允许
let x = 2; // 不允许
const x = 2; // 不允许

{
const x = 2; // 允许
x = 2; // 不允许
var x = 2; // 不允许
let x = 2; // 不允许
const x = 2; // 不允许
}

允许在另一个作用域或另一个块中用 const 重新声明变量:

示例

const x = 2; // 允许

{
const x = 3; // 允许
}

{
const x = 4; // 允许
}

提升

用 var 定义的变量被提升到顶部,并且可以随时初始化。

含义:您可以在声明变量之前使用该变量:

示例
这是可以的:

carName = "Volvo";
var carName;

用 const 定义的变量也会提升到顶部,但不会初始化。

含义:在声明变量之前使用 const 变量将导致 ReferenceError:

示例

alert (carName);
const carName = "Volvo";

总结

本文介绍了JavaScript Const的使用,如有问题欢迎私信和评论

你可能感兴趣的:(前端必知必会,前端,javascript,开发语言)