2 つのステートメントを 1 つに結合して、条件文の中括弧を省略したい場合があります。たとえば、PHP では、次のように書く代わりに
if ($direction == 'south-east') {
$x++;
$y++;
}
私は書くだろう
if ($direction == 'south-east') $x++ and $y++;
しかし、JavaScriptでそれを行う方法はありますか? 書き込みx++ && y++がうまくいかないようです。
2 つのステートメントを 1 つに結合して、条件文の中括弧を省略したい場合があります。たとえば、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/
次のように実行できます。
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-1
x++x の場合は false を返しますx の場合はfalse を返します0
{ }使用するものはまさにそれを行います-ステートメントを1つのブロックに結合し、任意のフロー制御ステートメントで使用できます。ブロック全体を 1 行に配置できます。この場合、JS は空白を気にしません。