【发布时间】:2019-01-09 10:07:13
【问题描述】:
通常我用这个:
myVar = "myString is" + 1 === 1 ? " really true" : " false, I think";
也许我只需要真实的部分,比如说:
myVar = "myString is" + 1 === 1 ? " really true" : "";
我不喜欢这部分:: "" 因为没用。
有没有办法使用类似下面的东西?
myVar = "myString is" + 1 === 1 && " really true";
它可以工作,但是当它为 false 时会出现问题,因为它写 "false"!
【问题讨论】:
-
"myString is" + 1 === 1 && " really true"被评估为((("myString is" + 1) === 1) && (" really true"))。"myString is" + 1是"myString is1",不等于1。 -
是的,将
1 === 1 && " really true"括在括号()中,就像我在答案中显示的那样,但仍会写类似myString is false的东西,我不知道它是否可以接受不管你是不是。 -
@ionizer 他很清楚(实际上是粗体字)写 false 是个问题。
-
就我个人而言,我认为带有“不必要”
""的三元组是要走的路。 -
我同意@MarkMeyer。如果需要内联,添加隐式布尔转换和比较不会比三元更干净
标签: javascript string performance ecmascript-6 ecmascript-5