0

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

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

alert(fun());

​当然,我可以使用if (1 == 1) return 1. 但是,我想知道为什么上面的代码不起作用。它会在 Chrome 的控制台中触发“Uncaught SyntaxError: Unexpected token return”错误。

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

4

3 回答 3

8

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

expr1 && expr2

return然而,陈述不是(从语法上讲)expressions

于 2012-05-15T20:49:43.010 回答
2

对于一个很棒的解释,请参阅 jmar777 的答案,这里是你如何实现你的计划的方法。我只是把它反过来:

function fun() {
    return null || 1 == 1;
}

alert(fun());
于 2012-05-15T20:56:23.963 回答
1

JavaScript 不是 bash shell 脚本。你没有if。JavaScript 也不是 C。 ==自动转换,但===不会,===几乎在任何情况下都会做出更明智的选择。

于 2012-05-15T20:50:41.893 回答