Javascript JS速记,如果执行多个操作
a==b?做‘x’:做‘y’ 很好 例如,你会如何写两件事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? 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
被替换为所需的表达式。无论如何,读取变量也是一项操作。