首页 > 解决方案 > 为什么可以在其块范围之外调用 Const?

问题描述

为什么在以下实例中允许调用 const。

const pizza = {

    topping1: "ham",
    topping2: "pepperoni"

}

console.log(pizza.topping2);

从技术上讲,“pizza.topping2”在花括号之外。那么它为什么起作用呢?我想你必须以某种方式调用 const,但是,关于 const 的课程,声明它仅用作块级变量。这似乎是一个新手问题(确实如此),但对我来说理解编写语法背后的逻辑很重要。

标签: javascriptsyntax

解决方案


在当前示例中,花括号{}没有创建块作用域。它只是用作对象初始化器

可以使用 new Object()Object.create()或使用文字表示法(初始化器表示法)来初始化对象。对象初始值设定项是一个以逗号分隔的零对或多对属性名称和对象关联值的列表,用花括号 ( {}) 括起来。

根据MDN

语句(或其他语言中的复合语句)用于对零个或多个语句进行分组。该块由一对大括号分隔,并且可以选择标记

语法

{
  StatementList
}

以下代码段将引发错误

{
  const x = 3;
}
console.log(x)


推荐阅读