gpt4 book ai didi

javascript - 运算符优先级 : ! 并等待

转载 作者:搜寻专家 更新时间:2023-11-01 04:22:33 26 4
gpt4 key购买 nike

在 JavaScript 中,如何解释以下语句:

cond1 && !await f()

这是该行的摘录

if(cond1 && !await f()){
do_stuff();
}

在生产应用程序中。 chrome 似乎没问题,但在 ios 上这会导致读取错误

unexpected identifier 'f'. Expected ')' to end an if condition.

看起来 ios 将 !await f() 变成了 (!await)(f()) 而不是 !(await f())

现在回答我的问题:根据 ECMA-262上面一行的正确解释是什么?

p.s.: 我们已将 ios 的代码更改为

var f_result = await f();
if(cond1 && !f_result){
do_stuff();
}

最佳答案

这与运算符优先级无关。由于两者都是一元前缀运算符,因此只有一种方式可以解释此表达式 - 所有 deletevoidtypeof +, -, ~, !await 是同一个生产目标解析的,可以可以任意嵌套。是的,它是 ES2017 中的有效语法。

关于javascript - 运算符优先级 : ! 并等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44944817/

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