【问题标题】:Why can’t name the variable const, but in objects can [duplicate]为什么不能将变量命名为const,但在对象中可以[重复]
【发布时间】:2019-12-29 19:59:53
【问题描述】:

我写的。

let const = 10;

得到了错误。对于对象来说一切正常

let x = {const:10}

有什么区别。

【问题讨论】:

  • 标识符和属性名是有区别的。
  • @jonrsharpe 有什么区别?

标签: javascript


【解决方案1】:

变量可以用在与const 关键字相同的地方。如果您可以使用const 作为变量名,则很难区分两者。

属性名称并非如此;语法总是很清楚,它指的是属性名称。

【讨论】:

    【解决方案2】:

    const 是保留关键字,不能用作变量名,所以第一个是无效的语法,

    let const = 10
    

    在第二个示例中,您使用 const 作为键,可以是任何字符串

    let x = {const:10}
    
    console.log(x)

    【讨论】:

    • 对象字面量中的属性名称可以是字符串或标识符,您在此处使用标识符。保留关键字可用作标识符。
    • @Quentin 保留关键字不是变量名(这就是我在回答的第一行的意思),关键总是对象文字中的字符串不是吗?
    • 变量名总是标识符。标识符并不总是变量名。在对象文字中(如果我们忽略计算的属性名称),那么 syntax 是字符串文字或标识符,由此产生的名称是字符串)。
    • @Quentin 是的,但我的回答是否与您在此处陈述的观点相矛盾?请原谅我在回答中遗漏了什么,让我知道很高兴能把事情做好并了解更多:)
    • 这并没有改变这样一个事实,即“const 是一个不能用作标识符的保留关键字”是错误的。您可以(而且您是!)使用保留关键字作为标识符。您只是不能将它们用作变量名。
    猜你喜欢
    • 1970-01-01
    • 2020-04-15
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多