gpt4 book ai didi

javascript - 输入 {a :1} giving 1, 和 {a :1, b :2} giving an error in a Javascript console? 的行为是什么

转载 作者:可可西里 更新时间:2023-11-01 01:30:07 28 4
gpt4 key购买 nike

以下将显示在 Firebug 或 jsconsole.com 中或在其他 Javascript 交互式控制台中:

>>> foo = { a : 1, b : 2.2 }
Object { a=1, more...}

>>> foo.a
1

>>> foo.b
2.2

>>> { a : 1, b : 2.2 }
SyntaxError: invalid label { message="invalid label", more...}

>>> { a : 1 }
1

为什么 1{a : 1} 返回,为什么 {a : 1, b : 2.2} 给出错误?在 Ruby 中,它们会按照您定义它的方式返回。

最佳答案

第二行给你一个 SyntaxError 因为它开头的 { 标记会导致歧义,解析器将其视为 Block statement。 ,而不是对象字面量的开头。

例如,一个有效的 Block 语句:

{ foo: 'bar' }

上面的看起来像一个对象字面量,但它不是,因为代码是在语句上下文中计算的。

它将被解析为一个包含 labelled statement 的 block (foo),后跟表达式语句 ('bar')。

为确保您使用的是对象字面量的语法,您可以用括号将其括起来(也称为 the grouping operator ):

({ foo: 'bar' })

分组运算符只能取表达式,因此没有歧义。

另见:

关于javascript - 输入 {a :1} giving 1, 和 {a :1, b :2} giving an error in a Javascript console? 的行为是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3731802/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com