4

Consider the following sample codes:

1.Sample

var IsAdminUser = (User.Privileges == AdminPrivileges)
  ? 'yes'
  : 'no';
console.log(IsAdminUser);

2.Sample

var IsAdminUser = (User.Privileges == AdminPrivileges)?'yes': 'no';
console.log(IsAdminUser);

The 2nd sample I am very comfortable with & I code in that style, but it was told that its wrong way of doing without any supportive reasons.

Why is it recommended not to use a single line ternary operator in Node.js?

Can anyone put some light on the reason why it is so?

Advance Thanks for great help.

4

5 に答える 5

6

すべてのコーディング標準で、それらは一般的に読みやすさと保守性を目的としています。私の推測では、著者は別の行の方が読みやすいと感じています。あなたの言語のコンパイラ/インタープリターは、それをすべて同じように処理します。あなた/あなたのプロジェクトに標準が設定されていて、それに固執している限り、問題はありません。私は、標準を石にする前に、プロジェクトの全員が作業するか、少なくともレビューすることをお勧めします。そのように別の行に分割している場合は、if/else 条件付きブロックを定義して使用することもできます。

正当な理由のないコーディング標準規則には注意してください。

個人的には、三項演算子が不自然に感じられるので好きではなく、何をしているのかを理解するために常に行を数回読まなければなりません。別の if/else ブロックの方が読みやすいと思います。もちろん個人の好み。

于 2013-02-12T12:48:09.683 に答える
2

見やすく、読みやすいからです。最初のスニペットが何をしているのかを一目で確認する方がはるかに簡単です。行末まで読む必要さえありません。1 つの場所を見るだけでIsAdminUser、どのような条件でどのような値が得られるかをすぐに知ることができます。if/else ブロック全体を 1 行に記述しない理由とほぼ同じ理由です。

これらはスタイルの規則であり、必ずしも客観的な (または技術的な) 推論によって裏付けられているわけではないことに注意してください。

于 2013-02-12T12:49:43.897 に答える