54

条件付き変数の割り当てに適した方法はどれですか?

第1の方法

 if (true) {
   var myVariable = 'True';
 } else {
   var myVariable = 'False';
 }

2番目の方法

 var myVariable = 'False';
 if (true) {
   myVariable = 'True';
 }

私は実際には、特定の技術的な理由がなくても 2 番目のものを好みます。皆さんはどう思いますか?

4

12 に答える 12

113

これを試して

var myVariable = (true condition) ? "true" : "false"
于 2012-06-07T06:45:28.730 に答える
28

条件によって変数の値を宣言できる方法として、私が知っている方法が 2 つあります。

方法 1: 条件が true と評価された場合、列の左側の値が変数に割り当てられます。条件が false と評価された場合、右側の条件が変数に割り当てられます。多くの条件を 1 つのステートメントにネストすることもできます。

var a = (true)? "true" : "false";

方法 1 の入れ子の例: 変数 A の値を 0、1、2、および負の値に変更して、ステートメントがどのように結果を生成するかを確認します。

var a = 1;
var b = a > 0? (a === 1? "A is 1" : "A is not 1") : (a === 0? "A is zero" : "A is negative");

方法 2: この方法では、|| の左の値が ゼロ、false、null、未定義、または空の文字列に等しい場合、右側の値が変数に割り当てられます。|| の左側の値が ゼロ、false、null undefined、または空の文字列に等しくない場合、左側の値が変数に割り当てられます。

左側の値は JS が条件を評価するために未定義の値にすることができますが、変数を宣言する必要があります。そうしないと、例外が生成されます。

var a = 0;
var b = a || "Another value";
于 2017-03-19T11:03:48.160 に答える
10

あなたは、はるかに短い三項を行うことができます(そして中括弧はありません):

var myVariable = (true) ? 'True' : 'False';
于 2012-06-07T06:44:54.750 に答える
6

variabel に true false のみを格納する場合の 3 番目の方法は、次に使用します

 var myVariable =(condition_written_in_if);
于 2012-06-07T06:46:15.900 に答える
4

最初のソリューションは、2 番目のコード スニペットで平均 1.5 ではなく、1 つの割り当てのみを使用します。一方、最初のコード スニペットは、JavaScript に慣れていない人は、変数のスコープが関数指向によるブロック指向ではないことに気付かない可能性があるため、読みにくいmyVariableです。ifelse

つまり、どちらのソリューションにも欠点があります。三項演算子はどうですか:

var myVariable = condition? 'True' : 'False';

またはキャメルケースを気にしない場合(ただし、これは単なる例であり、実際のコードではないことは理解しています)。

var myVariable = (!!condition).toString();
于 2012-06-07T06:44:46.870 に答える
0

技術的な理由はありませんが、コードを読みやすくするために、コードでは読みやすさが非常に重要です。

2 番目のオプションが表示された場合、処理の観点からは 1 つのチェックのみが実行され、非常に短い処理時間が節約されるため、2 番目のケースでは 1 つのチェックしかありません。

于 2012-06-07T06:44:03.687 に答える
0

私にとっては用途次第です。true の場合にのみ実行したいコードがあり、false の追加コードがない場合は、2 番目を使用します。true でコードを実行し、false で別のコードを実行したい場合は、最初のコードを使用します。用途にもよるけど、基本は一回書き。簡潔に、シンプルに、簡潔に

于 2012-06-07T06:45:07.250 に答える