假设if statement
如下
if(true) { doSomething() }
我将把它写成
true ? doSomething() : null
两者的结果相同,但两者的目的必然不同。
有人可以分享他们的经验吗
null
有什么区别。这是一种不好的做法吗?null
而不是写一个完整的else statement
PS:写
else case
也没什么大不了的。所以我希望答案或评论与此无关。
答案 0 :(得分:3)
if
是一个语句,是一个没有固有价值的步骤列表。
a ? b : c
是一个表达式 - 它评估为b
或c
的值。
三元运算符效果很好您想要使用条件的结果:
// After this line, `result` has either the return value of `doSomething` or `null`.
const result = value ? doSomething() : null
if
效果很好您不需要使用结果,您希望在任何条件分支中运行多个语句,或者想要链接多个if/else if/else
条件
In most languages您可以将三元表达式链接起来以模仿if/else if/else
,但这可能很难阅读。
答案 1 :(得分:1)
三元运算符不是if
的替代(在许多方面)。即使你可以编写模仿其他类型代码的各种hack,我也无法想象任何有能力的程序员甚至会想到在这里使用三元而不是正常的,完全可读且有效的if子句。
应该注意的是,三元运算符不是一个非常强大的工具。它有时可以让你以较短的方式编写一些代码,但这并不是尝试在任何地方使用它的理由。
答案 2 :(得分:0)