为什么基于短路评估的if语句不起作用?

dan*_*007 0 javascript

fun函数中,如果布尔表达式为true,我想返回1.

function fun() {
    (1 == 1) && return 1;
}

alert(fun());
Run Code Online (Sandbox Code Playgroud)

当然,我可以很容易地做到这一点if (1 == 1) return 1.但是,我想知道为什么上面的代码不起作用.它会在Chrome控制台中触发"未捕获的SyntaxError:意外的令牌返回"错误.

return 1如果(1 == 1)是真的,不应该只运行吗?为什么这不起作用?

jma*_*777 8

它不起作用,因为&&运算符需要它expressions的两个操作数.例如,

expr1 && expr2

return但是,语句不是(从语法上讲)expressions.