为什么 Javascript 中带有逻辑 AND 运算符的以下表达式给出语法错误?

Why does the following expression in Javascript with logical AND operator is giving syntax Error?

提问人:Prakhar Tripathi 提问时间:6/6/2023 最后编辑:Prakhar Tripathi 更新时间:6/6/2023 访问量:71

问:

虽然表达式正在按预期进行评估以给出答案,但是当我翻转操作数以使其出现时,它会产生语法错误。1 && {}{}{} && 1

452:1 Uncaught SyntaxError: Unexpected token '&&'

在后一种情况下,我期望 1 作为结果。使用 ||(OR) 运算符。

javascript 逻辑运算符 logical-and

评论

1赞 Pointy 6/6/2023
因为当语句以 开头时,它是一个块语句,而不是对象初始值设定项。{
1赞 Andrew Parks 6/6/2023
你可以通过做来修复它({}) && 1
1赞 Dave Newton 6/6/2023
(对于“fix”的小值)

答:

-4赞 Safal Pokharel 6/6/2023 #1
  1. 1 && {}:在本例中,1 是真值,因此评估 继续到第二个操作数 {}。由于 {} 是一个对象,并且是 如果认为是真值,表达式的结果是 {}。

  2. {} && 1:这里,{} 是一个对象,被认为是真实的,所以 第一个操作数是真实的。然而,当谈到第二个时 操作数,1,存在语法问题。在 JavaScript 中,逻辑 AND 运算符 (&&) 期望两个操作数都是表达式或值 这是可以评估的。但是,1 是单个标记,它不能 用作逻辑 AND 运算符的操作数,而不换行 它在括号中。因此,您会看到一个语法错误。

评论

0赞 Jaromanda X 6/6/2023
问题不在于它...... 例如,工作正常1{}"some string" && 1
0赞 Dave Newton 6/6/2023
“逻辑 AND 运算符期望两个操作数都是可以计算的表达式或值”——你是说数字不是可以计算的表达式或值吗?1