ホームページ  >  記事  >  ウェブフロントエンド  >  js演算子まとめ_基礎知識

js演算子まとめ_基礎知識

WBOY
WBOYオリジナル
2016-05-16 16:31:531233ブラウズ

論理和 (||)

var result = true || false;
論理 AND 演算と同様に、論理 OR はオペランドの 1 つがブール値でない場合、必ずしもブール値を返すわけではありません。この場合、次の規則に従います。 □ 最初のオペランドがオブジェクトの場合は、最初のオペランドを返します。

□ 最初のオペランドが false と評価された場合、2 番目のオペランドが返されます。

□ 両方のオペランドがオブジェクトの場合は、最初のオペランドを返します。

□ 両方のオペランドが null の場合、null を返します

□ 両方が未定義の場合は、未定義を返します。

□ 両方が NaN の場合、NaN を返します

「===」と「==」の違い

等価演算子 (==)

等価演算子は、比較の前に演算値に対して暗黙的な変換を実行します:

オペランド値がブール値の場合、比較する前に数値に変換します

一方の演算値が文字列で、もう一方の演算値が数値の場合、文字列は Number() 関数を通じて数値に変換されます
一方の操作値がオブジェクトで、もう一方がオブジェクトではない場合、オブジェクトの valueOf() メソッドが呼び出され、結果が前述のルールに従って比較されます
null と unknown は等しい
演算値が NaN の場合、等価比較は false を返します
両方のオペランド値がオブジェクトの場合、それらが同じオブジェクトを指しているかどうかを比較します。等価演算子は、両方のオペランドが同じオブジェクトを指している場合は true を返し、それ以外の場合は false
を返します。 以下にそれぞれ説明します。
まず === について話しましょう。これは比較的単純です。次のルールは、2 つの値が === 等しいかどうかを判断するために使用されます:
1. 型が異なる場合は[等しくない]
2. 両方が数値で同じ値の場合、[等しい] (!例外) は、少なくとも 1 つが NaN の場合、[等しくない] ことを意味します。 (値が NaN であるかどうかを判断するには、isNaN() を使用してのみ判断できます)
3. 両方が文字列であり、各位置の文字が同じである場合は [等しい]、そうでない場合は [等しくない]。
4. 両方の値が true、または両方とも false の場合、[等しい]。
5. 両方の値が同じオブジェクトまたは関数を参照している場合は [等しい]、そうでない場合は [等しくない]。
6. 両方の値が null であるか、両方が未定義の場合、[等しい]。

次のルールに従って == について話しましょう:

1. 2 つの値の型が同じ場合、=== 比較を実行します。
2. 2 つの値のタイプが異なる場合、それらは等しい可能性があります。次のルールに従って型の変換と比較を実行します:
a. 一方が null で、もう一方が未定義の場合、[等しい]。
b. 一方が文字列で、もう一方が数値の場合、文字列を数値に変換して比較します。
c. いずれかの値が true の場合は 1 に変換して比較し、いずれかの値が false の場合は 0 に変換して比較します。
d. 一方がオブジェクトで、もう一方が数値または文字列の場合、オブジェクトを基本型の値に変換して比較します。オブジェクトは、toString メソッドまたは valueOf メソッドを使用して基本型に変換されます。 JS コアの組み込みクラスは toString の前に valueOf を試行しますが、toString 変換を使用する Date は例外です。非jsコアオブジェクト、Ling Shuo (もっと面倒です、よくわかりません)
e. 他の組み合わせは [等しくない] です。

式の値 式の値

null==未定義 true true==1 true
"NaN" ==NaN false $null==0 false
false==0 true NaN!=NaN true
つまり、「==」には等しい値のみが必要です。 「===」では、値と型の両方が等しい必要があります。

情報は JavaScript の高度なプログラミングから取得され、後で整理および更新されます

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