0

変数に、すでにある可能性が十分にある値を指定したい場合、その値をチェックして不必要な上書きを避けるべきですか、それとも単にそうしてチェックを避けるべきですか? したがって、(ここでは JavaScript を使用して)、どのオプションがプロセッサの負担が少なくなります:

foo = "foo"; //foo might already be set to "foo"

また

if(foo != "foo") {
    foo = "foo";
}

ここで注意すべき点が 2 つあります。まず、現在 JavaScript で作業していますが、他の言語が異なる場合の回答に興味があります。2 つ目は、"foo" よりもずっと長い文字列を扱うことになるでしょう。

4

2 に答える 2

2

単純な割り当ては、常に条件チェックよりもコストが低くなります。そうは言っても、これは非常に小さいので、実際には問題ではありません。

まだ値がない場合にのみ何かを割り当てたい場合など、もう少し複雑なものの場合はfoo、論理和または(||)を使用して次のようにすることができます。

var foo;
// ... some code that may initialize foo ...
foo = foo || 'someDefault';

fooこれは、「falsey」値がある場合にもデフォルトになることに注意してください:0、空の文字列NaN、、、、、または。これらの値が許容できる場合は、代わりに3次ステートメントで使用することをお勧めします。nullundefinedfalsetypeof

var foo;
// ... some code that may initialize foo ...
foo = typeof foo === 'undefined' ? 'someDefault' || foo;
于 2013-01-28T20:11:54.143 に答える
0

変数を、すでに設定されている可能性のあるものに設定しても問題ありません。

foo = "foo";
于 2013-01-28T20:42:45.557 に答える