gpt4 book ai didi

javascript,对象逻辑和对象,语法错误?

转载 作者:行者123 更新时间:2023-11-28 11:36:30 25 4
gpt4 key购买 nike

参见here ;

代码示例

eval("true && {a:1} && {b:2} && alert('this is ok');")

eval("{a:1} && {b:2} && alert('this should be ok~~');")

eval 跳过语法错误。

我缺少什么?

测试:

29.0.1547.76 m win7

ie9

最佳答案

{a:1} 在 Javascript 中有两种含义

  • 对象字面量(如 x = {a:1})
  • 带有标签的代码块(如 while(x) {a:1})

具体的解释取决于解析器遇到打开的{时的状态。在“语句”状态下 {a:1} 将是一个 block ,在“表达式”状态下 - 一个文字。由于解析始终从语句状态开始,因此 {a:1} && x 将被读取为 block && expression,这是一个语法错误。相反,在 x && {a:1} 中,&& 强制解析器进入“表达式”状态,而 {a:1} > 将是一个文字(没有错误)。

为了确保 {a:1} 始终是文字,请在其前面放置一个运算符或大括号以使其成为表达式,例如+{a:1}!!{a:1}({a:1})

关于javascript,对象逻辑和对象,语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18931065/

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