Javascript 如果station重构是可能的,那么速记是可能的吗?

Javascript 如果station重构是可能的,那么速记是可能的吗?,javascript,if-statement,Javascript,If Statement,有没有一种方法可以简化一个单词 为了 这种速记法行不通 window.scrollY > 0 ? alert("yes") 虽然这会很好 window.scrollY > 0 ? alert("yes") : alert("no") 有没有一种不用:alertno部分的速记方法?您可以尝试使用: window.scrollY > 0 && alert("yes"); 对于不需要的情况,只需输入null: window.scrollY > 0 ?

有没有一种方法可以简化一个单词

为了

这种速记法行不通

 window.scrollY > 0 ? alert("yes")
虽然这会很好

window.scrollY > 0 ?  alert("yes") : alert("no")
有没有一种不用:alertno部分的速记方法?

您可以尝试使用:

 window.scrollY > 0 && alert("yes");
对于不需要的情况,只需输入null:

window.scrollY > 0 ? alert("yes") : null;
或者,正如@hsz所指出的,您可以利用JavaScript布尔表达式的短路特性,使用:

window.scrollY > 0 && alert("Yes");
// or even take advantage of the fact that zero coerces to false
window.scrollY && alert("Yes");
但是,在我看来,如果出现以下情况,这些内容就不如简单地使用一行无大括号那么容易理解:

您可以将alertno替换为0,因为三元运算符始终必须具有假参数:

提示'value'>0?是:0 ; 这:

被称为三元运算符。它通常用于确定语句的返回值

您可以通过以下方式实现您的意思:

(window.scrollY > 0) && alert("yes");

不管怎么说,它决不会比简单的if/else好。它的可读性不强。

否。三元运算符必须有一个else。否则就是语法错误。ifwindow.scrollY>0警报是;这可能是你能得到的最短的了。哦,老兄,我见过有人这样做,每次我退缩的时候。我知道,这很好,但在我看来太可怕了。@RGraham我不使用这个语句,因为它不太可读——但它是有效的,而且是最短的形式-
if(window.scrollY > 0) alert("yes");
window.scrollY > 0 ? alert("yes") : alert("no");
(window.scrollY > 0) && alert("yes");