ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の論理演算子がブール値ではなくオブジェクトを返す場合があるのはなぜですか?

JavaScript の論理演算子がブール値ではなくオブジェクトを返す場合があるのはなぜですか?

Linda Hamilton
リリース: 2024-11-18 02:42:02
オリジナル
1051 人が閲覧しました

Why Do JavaScript Logical Operators Sometimes Return Objects Instead of Booleans?

JavaScript の論理演算子: 非ブール値の結果を理解する

常に数値を返す数学演算子とは異なり、論理演算子 (&& および | |) JavaScript では、ブール値の代わりにオブジェクトを返すことがあります。これは、特に条件チェックに使用しようとする場合、直観に反する可能性があります。

オブジェクトが返される理由

|| && 演算子は論理短絡演算子です。つまり、オペランドを左から右に評価し、完全に決定された最初の論理値を返します。 JavaScript では、この値は true または false のいずれかですが、オブジェクトにすることもできます。

条件ロジックを理解する

式 X || 内Y、X が最初に評価され、ブール値として解釈されます。 X が true の場合、X はすぐに返され、Y は評価されません。これは、式がすでに true であると判定されているためです。

X が false の場合、Y が評価され、そのブール値が返されます。

同様に、&& は、最初の引数が true である場合に評価を停止します。

「False」のトリック

最初の混乱のポイントは、式が「true」と評価されると式自体が返されるためです。これが、論理式から実際の値が返される可能性がある理由です。

Null を使用したトリック

2 番目の混乱点は、異なるバージョンでの JavaScript の動作に起因します。当初は、「false」式に対して false を返していましたが、バージョン 1.2 以降では、式の実際の値を返すようになりました。

説明するには:

var _ = (obj.fn && obj.fn()) || obj._ || (obj._ = {}); // Returns obj.fn() if defined, otherwise obj._
var _ = obj && obj._; // Returns obj._ if obj is true, otherwise obj
ログイン後にコピー

以上がJavaScript の論理演算子がブール値ではなくオブジェクトを返す場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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