JavaScript演算子優先度、論理式、完全イコール、シーケンス検出の結果

2255 ワード

一.JavaScript演算子優先度
番号付け
演算子
説明
01
.[]()
オブジェクトメンバーのアクセス、配列の下付き、関数の呼び出しなど
02
++-~delete new type of void
単項演算子など
03
*/%
乗算、除法、取外し
04
+-+
加算、減算、文字列接続
05
<>>>>
シフト
06
<=>=instance of
シーケンス検出、instance of
07
==========
等値検出
08
&
位別に
09
^
位別に異同する
10
𞓜
位で
11
&&&
論理和
12
124 124
論理または
13
?:
条件(右結合性)
14
=op=
割り当て
15
を選択します.
多重シーク
二.js論理表現
4つのルール:ルール1:ブールショートルールをサポートする2:演算元をブール値として理解し、ブール演算規則を行う3:演算元のデータタイプ規則を変更しない4:強制演算結果のデータタイプ
二つの特性:(最初のパラメータを見て)1:a 1&&a 2–a 1?a 2:a 1;2:a 1|a 2–a 1?a 1:a 2
三.jsイコールと完全イコール
1.等値検出における「等しい」演算規則(=)
タイプ
演算規則
二つの値の種類の比較
同じデータタイプの値に変換して「データ等値」の比較を行います.
値の種類と参照の種類の比較
参照タイプデータを値タイプデータと同じタイプのデータに変換し、「データ等値」の比較を行います.
二つの参照の種類の比較
参照の比較
2.等値検出における「同一」の演算規則(===)
タイプ
演算規則
二つの値の種類の比較
データの種類が違うと、必ず「異なる」データの種類が同じで、「等値比較」を行います.
値の種類と参照の種類の比較
必ず「違う」
二つの参照の種類の比較
参照の比較
メモ3つのタイプ(数値、ブール値、文字列)では、数値とブール値の「データ等値」の検出オーバーヘッドが小さいですが、文字列の検出には大きなオーバーヘッドがあります.文字列の各文字を比較する必要があるため、2つの文字列が等しいかどうかを判断することができます.
四.シーケンス検出
シーケンス検出可能なデータタイプ:
シーケンスの種類を比較できます.
シーケンス値
bollan
0-1
ストリングス
(*注1)
number
NEGATIVE_INFINITY~POSITIVE_INFINIGY(*注2)
*注1:jsでは、char(文字)というデータタイプは存在しませんが、文字列の各文字は、単一文字として、シーケンス検出に参加します.注2:負無限~正無限、NaNはシーケンス検出に参加しません.
undefined–NaN null!–NaN
シーケンス検出規則
タイプ
演算規則
二つの値の種類を比較します.
データの再系列のサイズを直接比較します.
値の種類と参照の種類の比較
参照タイプの数値を、値タイプのデータと同じ種類のデータに変換し、「シーケンスサイズ」の比較を行います.
二つの参照の種類の比較
無意味は常にfalse(*注3)に戻ります.
*注3:参照タイプをシーケンス検出することも可能であり、valueof()演算効果例1:ブール値を0/1に変換し、同じだけではない!isFinite()===isNaN() //true
isFinite(undefined)===isNaN(null) //false
isFinite(null)===isNaN(undefined) //true
例2:空の文字列を0値true==1 //true
true===1 //false
例3:2つのオブジェクト(参照タイプ比較は常にfalseに返却される)vao 1=o 2={}.var o 3={}''==0 //true
' '==0 //true
''===0 //false
例4:2つの演算元は文字列であり、各文字のシリアル値を比較する例5:文字列と他のタイプの値を比較すると文字列を数値比較に変換する.
皱参考書:「JavaScript言語の精髄とプログラミング実践」第二版周愛民202.3