ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript は論理演算子で短絡評価を利用しますか?

JavaScript は論理演算子で短絡評価を利用しますか?

Barbara Streisand
リリース: 2024-11-28 21:40:12
オリジナル
706 人が閲覧しました

Does JavaScript Utilize Short-Circuit Evaluation in Logical Operators?

JavaScript の短絡評価 - 包括的なガイド

プログラミングにおいて、短絡評価とは、式が次の条件を満たすまで評価される動作を指します。結果はわかっているため、式の残りの部分はスキップされます。このメカニズムは一般に、不必要な計算を避けるために条件文で使用されます。

JavaScript は短絡評価をサポートしていますか?

はい、JavaScript は短絡評価をサポートしています。以下の例で示すように、&& (AND) と || (OR) 演算子はこの動作を示します。

例:

次の JavaScript コードを考えてみましょう:

if (true || foo.foo) {
  // Passes, no errors because `foo` isn't defined.
}
ログイン後にコピー

ライブ デモ: https://jsfiddle.net/iayzejre/

説明:

||演算子は、最初のオペランド (この場合は true) が true と評価されると、すぐに true を返します。したがって、2 番目のオペランドは評価されないため、foo.foo が定義されているかどうかに関係なく、式は渡されます。

例:

次に、次のコードを考えてみましょう。

if (false && foo.foo) {
  // Also passes, no errors because `foo` isn't defined.
}
ログイン後にコピー

ライブデモ: https://jsfiddle.net/iayzejre/1/

説明:

同様に、&& 演算子は、最初のオペランドが true と評価された場合にのみ 2 番目のオペランドを評価します。 。 false は常に false であるため、条件は即座に失敗し、foo.foo は評価されません。

他の言語での回避策

コーディング言語が short-回路評価では、三項演算子を使用した回避策が考えられます。次の C# の例を考えてみましょう:

if (true ? true : foo.foo) {
  // Passes without compilation errors.
}
ログイン後にコピー

この場合、最初のオペランド (true 条件) が true の場合、三項演算子はすぐに true を返します。 false の場合、2 番目のオペランド (foo.foo 式) が評価されます。ただし、この回避策はすべてのシナリオに適しているわけではないため、注意して使用する必要があります。

以上がJavaScript は論理演算子で短絡評価を利用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート