在JavaScript中,以下语句应如何解释:
这是一段来自该行的摘录。
在一个生产应用程序中,Chrome 看起来没问题,但在 iOS 上会出现错误,提示为“”。
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();
}