尽管有观点认为,在单行if语句中放弃花括号对于可维护性和可读性来说并不理想。

但是这个呢?

if (lemons) { document.write("foo gave me a bar"); }

它甚至更加压缩,如果展开,花括号也不会被忘记。是否存在明显的问题,如果没有,考虑的因素是什么?我觉得它还是很有可读性的,至少和三元运算符一样。在我看来,由于可读性,三元运算符不太被建议,尽管我觉得这个结论并不是很一致。

我内心的邪恶双胞胎想要建议这一点,尽管语法显然不是为它而设计的,而且可能只是一个坏主意。

(syntax) ? document.write("My evil twin emerges"): "";

当前回答

箭头函数示例:

let somethingTrue = true
[1,2,3,4,5].map(i=>somethingTrue && i*2)

在承诺:

Promise.resolve()
  .then(_=>checkTrueFalse && asyncFunc())
  .then(_=>{ .. })

否则:

if(somethingTrue) thenDo()

如果它只是一个简单的条件句,我更喜欢尽可能使用If (value),因为在语句开头的If这个词比旁听和问号更能说明正在发生的事情。

其他回答

这一行要干净得多。

if(dog) alert('bark bark');

我更喜欢这个。希望它能帮助到别人

我已经看到了很多支持使用三元运算符的答案。如果a)你确实有一个替代选项,b)你从一个简单的条件返回一个相当简单的值,那么三元是很好的。但是…

最初的问题没有可供选择的选项,只有一个(实)分支的三元运算符迫使您返回一个配置好的答案。

柠檬吗?“foo给了我一个酒吧”:“谁知道你会得到什么回报”

我认为最常见的变化是柠檬?“喷火…’:”,而且,通过阅读各种语言的无数关于真、假、真、假、null、nil、空白、空的文章,你就会知道,你正在进入一个雷区(尽管是一个记录良好的雷区)。

一旦三元的任何部分变得复杂,你最好使用更明确的条件形式。

说我投票给如果还不够“foo”。

//另一个简单的例子

 var a = 11;
 a == 10 ? alert("true") : alert("false");

你可以使用PHP中常用的格式:

(lemon) ? document.write("foo gave me a bar") : document.write("if condition is FALSE");
**Old Method:**
if(x){
   add(x);
}
New Method:
x && add(x);

即使是赋值运算,我们也可以用圆括号

exp.includes('regexp_replace') && (exp = exp.replace(/,/g, '@&'));