这个If语句可以写成一行吗? [关闭]
Posted
技术标签:
【中文标题】这个If语句可以写成一行吗? [关闭]【英文标题】:Can this If statement be written in one line? [closed] 【发布时间】:2021-08-01 19:36:23 【问题描述】:是否有一种单行方式来执行仅使用布尔值触发一次的 if 语句?
var boolean;
if (!boolean)
function doSomething();
boolean = true;
这句话有点意思。
【问题讨论】:
为什么要写成一行? @RBarryYoung 我的好人,***.com/questions/21194934/… 代码没有任何意义,为什么会有function
?
function doSomething();
无效。是声明doSomething
函数还是执行它?
您可能想要提供更多上下文,例如boolean
应该如何被阅读。在这个小例子中没有用。
【参考方案1】:
把它写成一行没有多大意义,因为代码很清楚你写它的方式(减去你的语法错误),但它可以完成
function test(myBool)
function doSomething () console.log('run');
myBool = myBool || doSomething() || true;
console.log(myBool);
test(false);
test(true);
或者如果 doSomething 返回一个真正的布尔值或真值
function test(myBool)
function doSomething () console.log('run'); return true;
myBool = myBool || doSomething();
console.log(myBool);
test(false);
test(true);
【讨论】:
如果doSomething
返回一个像NaN
这样的虚假值,它将将该值设置为myBool
我认为 myBool = myBool || !doSomething() || true
确保它总是返回 true
而不管 doSomething
返回什么【参考方案2】:
您可以使用logical OR assignment ||=
和comma operator。
boolean ||= (doSomething(), true);
【讨论】:
以上是关于这个If语句可以写成一行吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章