有时我想将两个语句合并为一个以省略条件中的花括号。例如,在 PHP 中,而不是写
if ($direction == 'south-east') {
$x++;
$y++;
}
我会写
if ($direction == 'south-east') $x++ and $y++;
但是有没有办法在 JavaScript 中做到这一点?写作x++ && y++
好像不行。
有时我想将两个语句合并为一个以省略条件中的花括号。例如,在 PHP 中,而不是写
if ($direction == 'south-east') {
$x++;
$y++;
}
我会写
if ($direction == 'south-east') $x++ and $y++;
但是有没有办法在 JavaScript 中做到这一点?写作x++ && y++
好像不行。
花括号并没有那么糟糕,但是——在非常特殊的情况下——你可以使用逗号来增强你的代码:
if (direction == 'south-east') x++, y++;
这是小提琴:http: //jsfiddle.net/FY4Ld/
{ }
您使用的就是这样做的 - 将语句组合在一个块中,可与任何流控制语句一起使用。您可以将整个块放在一行上 - 在这种情况下,JS 不关心空格。
你可以这样做:
var x = 0,
y = 0,
cond = true;
if (cond) ++x && ++y;
-1
注意:如果 x 是;这不起作用
或没有if
:
cond && ++x && ++y;
所以你的代码看起来像这样:
if ($direction == 'south-east') $x++ && $y++;
请注意,运算符位于变量之后,这意味着如果is ++
,这将不起作用。$x
0
++x
如果 x 是则-1
x++
返回 falsy 如果 x 是则返回 falsy0