Javascript如果短符号

use*_*011 5 javascript

我正在网上冲浪,寻找if语句的简写Javascript表示法.只有if,而不是其他.我的问题:它存在吗?例如:

(i === 0) ? onlyMyTrueValue;
Run Code Online (Sandbox Code Playgroud)

我似乎找到的唯一片段就是这个:

(i === 0) ? myTrueValue : myFalseValue;
Run Code Online (Sandbox Code Playgroud)

tec*_*bar 14

你可以做:

(i === 0) && onlyMyTrueValue;
Run Code Online (Sandbox Code Playgroud)

只有在左侧通过时,上述语句的右侧才会执行.


Sim*_*ris 11

你可以做(i === 0) && onlyMyTrueValue;,但你不应该,为了可读性.

比较你的原文:

(i === 0) ? onlyMyTrueValue;
Run Code Online (Sandbox Code Playgroud)

而且如果:

if (i === 0) onlyMyTrueValue;
Run Code Online (Sandbox Code Playgroud)

这只是该方法的另一个字符和相同数量的字符&&.选择可读的选择.

  • +1表示可读性为王.虽然我发现像`var foo = bar ||这样的情况 [];`如果您要分配的值(`bar`)类似于您要过滤掉的`undefined`或`null`,则有助于分配默认值. (2认同)
  • 在99.9%的时间阅读代码分支时,可读性是最重要的.短路方式可读性较差.如果您担心文件大小首先通过闭包编译器运行您的代码,它将缩小ifs是否短路. (2认同)