JavaScriptの関係演算子

代入演算子:変数に代入します

最も一般的な代入演算子は、等号(=)であり、x及びyからx = yの発現が表します

= Y + X  //は、X = X + Yと等価です

他のより複雑な代入演算子はあります

X - Y = // に相当X = X - Y 
X = Y * // に等しいY * X = X 
X / Y = //同等にX = X / Yの
X%= Y // 同等にX = X Yの% 
X = Y >> // X >> Y = Xに相当し 
、X = Y << // X << Y = Xに相当し 
、X = Y >>> // 等価>>> X = Y X 
X Y =&// X&Y = Xに相当 
Y = | X // X = Xに等しい| Y 
X = Y ^ // X = X ^ yに等価

これらは、代入演算子は、指定された操作を適用すると一致している、そして、左に値を割り当てます

例:()3で割った10の余りを求めます

 

比較演算子:

次いで、2つの値の大小比較を決定し、比較すると、条件が満たされたかどうかを示すブール値を返します

比較例2は1よりも大きい場合、戻り値はtrueです

8つの比較演算子の合計

 比較演算子アルゴリズム

データ比較器は、タイプだけではなく値を、様々なタイプの値を比較することができ

次のように正確な等価演算子と演算子、比較演算子に加えて、他の一般的なアルゴリズムです。

 2人のオペレータが文字列である場合、辞書式比較(比較ユニコードのコーディング配列)

そうでなければ、2事業者は、まず比較値に変換されます。(最初の数値関数を呼び出すと同等)

の(a)は、プリミティブ型の比較

そして、Booleanストリングを最初に比べて、その後、デジタル型に変換され、

VaRの AA = 5> '4' ; 
console.log(AA)。
// 5>数値( '4')
// 即5> 4
AA = > console.log(AA)。 // 番号(真)>数(偽) // 1> 0即
AA = 2> console.log(AA)。 // 2>数値(真) // 2> 1を即

(2)オブジェクトの比較

結果は、オブジェクトによって返される場合は、最初のオリジナルのデジタル型の値へのvalueOfオブジェクトと、前のように変換を比較する対()メソッドで、または、あなたが文字型に変換するためのtoString()メソッドをコールし続けます。

1、元のデータ型と比較するため

図2に示すように、オブジェクトとオブジェクト

VaRの AA = [2 ]; 
のwindow.alert(AA > [3 ])

// [11] [2] .valueOf()のtoString()> .valueOf()のtoString()..に相当
// すなわち、 '2' > '3'

 

 

 

 

文字列の比較(C)

辞書的に文字列を比較

同じの最初の文字が、それはように複数の第二文字で、となる場合、内部のJavaScriptエンジンはまず、Unicodeコードポイントの最初の文字を比較します。

小文字cが、Unicodeコード・ポイント(99)は、資本のUnicodeコードポイントCよりも大きい場合
(67)、それは真を返します。

Unicode文字セットは、すべての文字をカバーしているので、その文字を比較することができます。

「日」Unicodeコードポイントがあるので5929、「地上」Unicodeエンコーディングが5730、それはtrueを返します

 

 

アイデンティティ演算子(厳密な等価演算子)

二つの等しいJavaScriptの演算子、等価演算子と厳密な等価演算子は== ===あります。

差:等価比較演算子== 2つの値が等しい場合です。

厳密な等価演算子===値のない同じ種類は、厳密な等価演算子が直接falseを返す場合、それらは「同じ値」であるかどうかを比較、および等価演算子は、同じデータ型の値を変換し、そしてう厳密な等価演算子は、比較しました。

厳密な等価演算子のアルゴリズム*:

(A)値の異なるタイプ

2種類の異なる値であれば、直接リターンflase

NUMBER型1は===ために、異なる種類のデータがflase返され、「1」は、文字列型です。

ブールは、異なるデータ型がfalseを返す「真」文字列型、trueです。

最初の計算は1に等しく、文字番号は「1」は、同じタイプと、を比較、それは真を返します。

 

 (B)元の値と同じタイプ

プリミティブ型(文字列、ブール値、デジタル)の同じタイプを比較し、同じ値がtrueを返し、値がfalseを返す同じではありません

1と比較例1 10進数、16進数のタイプと値が同じで、それは真を返します

 

 注:任意のランクのNaN(それ自体を含む)同一ではない、0点も、負、正および負の0同じ。

同じクラスの合成値(C)

比較は、それらの値が同じオブジェクトにマッチタイプ値の同じタイプのデータ(オブジェクト、配列、機能)が、より多くのポイントを比較することと同じではない比較します

 2つのダミーワードオブジェクト、空の配列、ヌル機能、等しくない結果の比較。

空の配列の両側に複合型の値は、厳密に等しい比較動作がメモリ参照アドレスも同じであり、空のターゲット演算子は、それらの空の関数値が異なるメモリアドレスに格納されているため、結果はもちろん、偽。

2つの変数が同じオブジェクトを参照する場合は、それらが等しい、結果はtrueを返します

 

 二つのオブジェクトの比較のために、厳密に等しい比較演算子は、アドレス比較値が数よりも小さいよりも大きいです。

最初の2つの値を比較し、比較が最後のアドレスです。

新しい日付()> 新しい日付()// 
新しい日付()< 日()// 
新しい日付()=== 新しい日付()// 

 

(IV)不定とヌル

未定義とヌル自体厳密に等しいです

変数宣言のデフォルト値は不定であり、割り当てられていないが、2つだけが等しい変数宣言のゆえ値

 

 (E)厳密な等価演算子

厳密な等価演算子は、対応する「厳密な不等価演算子」(!==)、反対の両方の演算結果を持っています

 

 

等価演算子

同じデータ型、および同様の動作を厳密にオペレータをルール等価演算子

最初の文字は、次に厳密演算子を使用して比較している同じタイプに変換されるときに、データ・タイプは同じではありません。

変換ルールを入力します。

(A)プリミティブ型の値

プリミティブ型の値を値に変換し、データ型を比較しています

(B)元の値と比較し、オブジェクトの種類

オブジェクトが比較さ、値型に元の型と比較した場合の値、元のオブジェクト(広義に配列や機能を含むオブジェクトと呼びます)。

(C)不定とヌル型比較

不定とヌルデータの他のタイプと比較して両者が互いにデータを比較すると、真の値を返す場合、flase返されます

デメリット(IV)等式

時々、オペレータのデータ型変換発現の変化における等価演算子は、エラーが発生しやすい、それは等価演算子(==)を使用するのが最善ではありません、厳密に等しいを使用します

(E)不等計算

代わりに、オペレータの操作が(!=)等しくない、そして等式

 

おすすめ

転載: www.cnblogs.com/nyw1983/p/11563290.html