三元运算符用于增加变量

Fra*_*raK 6 javascript conditional-operator

为此使用三元运算符是否是一个好习惯:

answersCounter = answer.length != 0 ? ++answersCounter : answersCounter;
Run Code Online (Sandbox Code Playgroud)

这是我经常问自己的一个问题,因为它经常发生。或者,使用普通的 if 语句更好吗?对我来说,这看起来更简洁。

Tre*_*man 7

这只是意见,但我认为像你这样写增量有点糟糕的风格。

将变量分配给自身的预递增版本有点令人困惑。对我来说,最好的代码是最清晰的(除了在必要时对优化点头),有时简洁会导致清晰,有时则不会(请参阅用 Perl 编写的任何内容......我孩子,有点)。

你有没有遇到过这样的编程技巧问题:

int i = 5;
i += i++ + i;
Run Code Online (Sandbox Code Playgroud)

或者类似的东西?你会想,谁需要知道它是如何工作的,因为你什么时候会为它自己的前/后增量版本分配一个变量?我的意思是,你永远不会在真正的代码中看到它,对吧?

嗯,你刚刚提供了一个例子。虽然它是可解析的,但它并不惯用,也不比直接的更清晰if

例如

if (answer.length != 0) answersCounter++;
Run Code Online (Sandbox Code Playgroud)

当然,有些人不喜欢if没有大括号的语句,也不喜欢没有换行符的大括号,这可能是你最终得到三元的方式。需要重新评估具有编码风格的东西,如果它导致(主观上)更糟糕的代码以避免一些回车。

同样,这只是意见,当然不是规则。