5

2 つのステートメントを 1 つに結合して、条件文の中括弧を省略したい場合があります。たとえば、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

次のように実行できます。

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

于 2012-08-21T18:08:35.473 に答える
1

{ }使用するものはまさにそれを行います-ステートメントを1つのブロックに結合し、任意のフロー制御ステートメントで使用できます。ブロック全体を 1 行に配置できます。この場合、JS は空白を気にしません。

于 2012-08-21T18:04:47.220 に答える