Javascript JS速记,如果执行多个操作

Javascript JS速记,如果执行多个操作,javascript,shorthand-if,Javascript,Shorthand If,a==b?做‘x’:做‘y’ 很好 例如,你会如何写两件事 > a==b? do 'x' and do 'z' : do y ; 逗号听起来像你要找的东西 (a == b) ? (x, z) : y x和z可以是变量,在这种情况下,它们的值将由该表达式返回,或者它们可以是实际操作,在这种情况下,它们也将被计算,即执行 因此,如果你这样做: (true == true) ? (alert('Hey'), alert('there')) : alert('Aw...') 它将显示两个警报

a==b?做‘x’:做‘y’

很好

例如,你会如何写两件事

> a==b? do 'x' and do 'z' : do y ;

逗号听起来像你要找的东西

(a == b) ? (x, z) : y

x
z
可以是变量,在这种情况下,它们的值将由该表达式返回,或者它们可以是实际操作,在这种情况下,它们也将被计算,即执行

因此,如果你这样做:

(true == true) ? (alert('Hey'), alert('there')) : alert('Aw...')
它将显示两个警报,第一个显示“嘿”,第二个显示“那里”


另外,听起来这对您来说并不重要,但应该注意的是,第二个表达式的值(通过执行
y
返回的值)将作为完整表达式的结果返回。

这个
不是一个简写的if语句(嗯,它有点像但是…)它应该用作表达式,即
a=b?c:d
而不是像
b这样的东西?c():d()…这种速记称为三元运算符。请参阅此处的文档:速记并不总是更好。我同意@AlexK。。把速记留给代码压缩器。编写易于理解的代码。
x
z
是变量,而不是操作。这个问题是问如何做一个或多个操作。@AndersonGreen:我肯定他在遵循问题中给出的伪代码,其中
x
y
z
被替换为所需的表达式。无论如何,读取变量也是一项操作。