gpt4 book ai didi

JavaScript 语法 : indexing object literals syntactically forbidden?

转载 作者:行者123 更新时间:2023-11-30 07:20:27 24 4
gpt4 key购买 nike

在 Chrome 63.0 和 Firefox 58.0 中,向对象文字添加索引似乎可以防止对象被解析为对象。

{"a":"b"}
17:37:32.246 {a: "b"}

{"a":"b"}["a"]
17:37:36.578 VM288:1 Uncaught SyntaxError: Unexpected token :

谁能解释为什么解析器不像我那样解析这个? (我觉得一定是我实现的spec有bug。。。)好像觉得不是在解析一个对象。

将对象括在方括号中会导致语法正确的表达式:

({"a":"b"})["a"]
17:42:03.993 "b"

最佳答案

它与控制台将 {} 评估为 block 而不是对象字面量 有关。

这个问题类似于"Defining a JavaScript object in console""Is the curly brackets object notation valid in any expression?" StackOverflow 上的问题。

关键部分from the spec is :

ExpressionStatement: [lookahead ∉ {{, function}] Expression ;

注意:ExpressionStatement 不能以大写开头 大括号,因为这可能会使它与 Block 不明确.另外,一个 ExpressionStatement 不能以 function 关键字开头,因为 这可能会使它与 FunctionDeclaration 不明确。

关于JavaScript 语法 : indexing object literals syntactically forbidden?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548444/

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