5

有时我想将两个语句合并为一个以省略条件中的花括号。例如,在 PHP 中,而不是写

if ($direction == 'south-east') {
    $x++;
    $y++;
    }

我会写

if ($direction == 'south-east') $x++ and $y++;

但是有没有办法在 JavaScript 中做到这一点?写作x++ && y++好像不行。

4

3 回答 3

11

花括号并没有那么糟糕,但是——在非常特殊的情况下——你可以使用逗号来增强你的代码

if (direction == 'south-east') x++, y++;

这是小提琴:http: //jsfiddle.net/FY4Ld/

于 2012-08-21T18:06:59.530 回答
1

{ }您使用的就是这样做的 - 将语句组合在一个块中,可与任何流控制语句一起使用。您可以将整个块放在一行上 - 在这种情况下,JS 不关心空格。

于 2012-08-21T18:04:47.220 回答
1

你可以这样做:

var x = 0,
    y = 0,
    cond = true;

if (cond) ++x && ++y;

-1注意:如果 x 是;这不起作用

或没有if

cond && ++x && ++y;

所以你的代码看起来像这样:

if ($direction == 'south-east') $x++ && $y++;

请注意,运算符位于变量之后,这意味着如果is ++,这将不起作用。$x0

++x如果 x 是则-1
x++返回 falsy 如果 x 是则返回 falsy0

于 2012-08-21T18:08:35.473 回答