3

我想知道:“三元运算符何时比仅使用'if-else'块更糟糕?”

我想,它可能与调试时间有关(例如三元运算符不利于调试)

这样的美有用吗?也许在某些情况下,简单的 if-else 块更适合使用?

谢谢你

4

2 回答 2

6

当您想要有条件地评估两个简单表达式之一并对结果做一些简单的事情(例如将其分配给变量或返回它)时,三元运算符很有用。这样的事情是可接受的三元运算符用法:

var status = a.isActive() ? a.status : defaultStatus;

如果您的代码比这更复杂,那么使用 if 语句通常会更清楚,否则您可能会在一行代码中尝试做太多事情。这不仅仅是易于调试 - 带有复杂表达式的长行可能难以理解。

在许多语言中,不允许在表达式中使用语句(相对于表达式)? :。如果您需要执行一系列语句,那么您别无选择,只能使用一条if语句。

于 2012-12-25T20:29:13.677 回答
1

三元组应该仅用于单个语句中的非常简单的分支,IMO。我想说,任何时候为了清楚起见,你想在多行上写一个三元组,是时候使用一些其他形式的分支了。我个人也发现复合三元运算符很难阅读,并认为它是一种不好的形式。

忘记IDE。如果您必须能够在调试器中完全中断每一件小事才能理解您的代码,那么您将面临更大的结构性问题。

在 JavaScript 中,当我根据函数参数进行设置时,我倾向于只在函数开头的初始 var 声明块中使用三元组。他们主要评估非常简单的事情,例如数组的长度、可选参数的存在或参数的类型。除了最初的准备点之外,逻辑通常会变得更加复杂或需要不止一个简单的检查,因此使用基于块的切换结构或某种形式的映射来拼写它更有意义。

但是首先考虑没有 IDE 的易读性。IMO,像没有 IDE 一样很好地构建代码将始终帮助您更好地理解代码。

于 2012-12-25T21:17:42.610 回答