如何将两个JavaScript语句组合成一个

如何将两个JavaScript语句组合成一个,javascript,Javascript,有时我想把两个语句合并成一个语句,以省略条件句中的大括号。例如,在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++
似乎不起作用。

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

大括号也没那么糟糕,但是在非常特殊的情况下,您可以:


这是小提琴:

你可以这样做:

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

if (cond) ++x && ++y;
if ($direction == 'south-east') $x++ && $y++;
注意:如果x是
-1
,则此项不起作用

如果,则不带

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

因此,您的代码如下所示:

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

if (cond) ++x && ++y;
if ($direction == 'south-east') $x++ && $y++;
请注意,
++
运算符位于变量之后,这意味着如果
$x
0
,则此操作将不起作用

如果x是
-1



x++
在我看来,如果x是
0

,则返回falsy,我认为大多数人认为这是一种糟糕的风格。我认为当你有多条语句要用花括号执行时,你应该总是用花括号。。。我是你的朋友。如果不是你的朋友,那么下一个试图阅读你的代码的人的朋友。这就是为什么我们有支架我的朋友。所有这些黑客的问题是他们都是黑客:他们隐藏代码的目的,在某些情况下可能隐藏bug。好吧,Jospeh的回答在我看来不像是黑客,就像在我的代码中一样,我有很多这样的条件句,把它们写在一行中可以节省很多空间,如果我不需要使用大括号(至少对我来说是这样),那就更好了,所以我看不出我的问题被否决的原因。看起来这里对花括号有着强烈的感情。这可能是一个评论。看看其他人。@dystroy,如果这恰好也是一个答案,我为什么要这样做?我知道,它不能回答我的问题。@LFS,这是你问题的唯一正确答案。您绝对不能以任何其他方式可靠地组合任意语句。其他每个答案都会给出一个表达式,这个表达式可能正确工作,也可能不正确,这取决于它的内容。只需一个注释来支持Oleg,因为这是正确的答案。张贴主要是为了防止其他人出现。在这里发布的所有其他恶作剧都有潜在的灾难性缺陷,并且在IMO中表现得非常糟糕。我认为在Oleg的帖子中丢失的是,你可以用括号单列。这就是他想说的。使用
^
+
或几乎任何没有捷径的东西。就像奥列格所说的,
&
如果第一个条件为false,就会中断。您可以使用
&
,它将检查这两个条件。或者他所说的其他运算符。@shade-IMHO,逗号更简单(因为它不是黑客)。@JosephSilber我同意,不需要评估条件。我不知道逗号在javascript中是这样工作的,因为某种原因,我以前看不到你的答案。@shade-我暂时删除了它,因为。我们又开始运行了:)似乎不起作用。无论条件是什么,都会执行这些语句。。。我错过什么了吗@密码-您已将
y
硬编码到
2
。它实际上不是递增的。@Cypher-谢谢你的链接。将其添加到答案中。