1

私が取り組んでいるプロジェクトでは、「列挙」オブジェクトを含むスクリプトがあります。

var MyEnumeration = {
    top: "top",
    right: "right",
    bottom: "bottom",
    left: "left"
};

これらのリテラル値の 1 つを使用するものを使用する必要がMyEnumeration.leftある場合は、単に比較を行うか、場合に関係なく行います。

ただし、少なくとも C# では、文字列 A が文字列 B と一致することを確認するために、文字列は文字ごとの比較を行う必要があるため、通常、文字列値は数値よりもゆっくりと評価されます。

これは私の質問に私をもたらします:MyEnumeration数値を使用して実装すると、より迅速に実行できますか?

var MyEnumeration = {
    top: 0,
    right: 1,
    bottom: 2,
    left: 3
};
4

2 に答える 2

1

文字列を比較するとき、JavaScript は各文字を左から右に 1 つずつ比較します。しかし、2 つの数値を比較する場合、それは 1 つの比較にすぎません。明らかに、どちらが速いかを推測できます-数値比較。

ただし、この種の最適化は時期尚早かもしれません。その効率向上が本当に必要でない限り (おそらく、このような数百の値を頻繁に比較しますか?)、それらについてあまり考えないでください。

于 2013-08-23T19:24:02.983 に答える