ホームページ  >  記事  >  ウェブフロントエンド  >  Javascript 最適化テクニックにおける短絡式の詳細な紹介_JavaScript テクニック

Javascript 最適化テクニックにおける短絡式の詳細な紹介_JavaScript テクニック

WBOY
WBOYオリジナル
2016-05-16 16:07:231099ブラウズ

ショートサーキット式とは何ですか?

短絡式: 「&&」および「||」演算子のオペランド式として、これらの式が評価されるとき、最終結果が true または false であると判断できる限り、評価プロセスは次のようになります。終端、これを短絡評価と呼びます。これは、これら 2 つの演算子の重要な特性です。

最も単純な例:

コードをコピーします コードは次のとおりです:

foo = foo||bar;

このコード行は何を意味しますか?答え:

コードをコピーします コードは次のとおりです:

// foo が存在する場合、値は変更されません。それ以外の場合は、bar の値を foo
に代入します。 if(!foo)
foo = bar;

JavaScriptの論理演算では、0、""、null、false、未定義、NaNはすべてfalseと判定され、それ以外はすべてtrueと判定されます。したがって、上記の式 foo = foo||bar; では、 || が最初のオペランドを最初に計算し、それが true に変換できる場合、つまり foo がすでに値を持っていることを意味し、左側の式の値が返されます。それ以外の場合は、2 番目のオペランド バーを計算します。

さらに、|| 演算子のオペランドがブール値でない場合でも、返される値の種類に関係なくブール値に変換できるため、ブール OR 演算とみなされます。 。

もちろん、次のアプローチを使用する方がより厳密になります:

コードをコピーします コードは次のとおりです:

if(foo) //厳密さが不十分

if(!!foo) //より厳密には、他の型の値をブール型に変換できます

テストできます:

コードをコピー コードは次のとおりです:

var foo;
変数番号 = 1;
var string = "string";
var obj = {};
var arr = [];


console.log(typeof(foo)); // 未定義
console.log(typeof(number)) //数値
; console.log(typeof(string)); //文字列
console.log(typeof(obj)); //オブジェクト
console.log(typeof(arr)); //オブジェクト

console.log(typeof(!!foo)) // boolean
console.log(typeof(!!number)); //boolean
console.log(typeof(!!string)); //boolean
console.log(typeof(!!obj)); //boolean
console.log(typeof(!!arr)); //boolean

これを使用すると、記事「JavaScript プロジェクトの最適化」で説明されている内容と非常に一致するため、JavaScript を最適化するという目的を達成するためにスクリプトの実行が少なくなるか、まったく実行されなくなります。ただし、この方法で記述するとコードを合理化できますが、コードの可読性が低下するという欠点も生じることに注意してください。したがって、適切なコメントを追加することをお勧めします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。