2.9.5. 加法演算子
加法演算子 (つまり、プラス記号とマイナス記号) は通常、最も単純な演算子ですが、ECMAScript では、各加法演算子に多数の特殊な動作があります。
1. 加算演算子:
var iResult=1 2;
console.log(iResult);//出力 3
特殊性:
特定のオペランドは NaN であり、結果は NaN
Infinity + Infinity、結果は Infinity
-Infinity + -Infinity、結果は -Infinity
Infinity + -Infinity、結果は NaN
両方のオペランドが文字列の場合、2 番目の文字 String を入力します最初の文字列に連結
一方のオペランドのみが文字列の場合、もう一方のオペランドを文字列に変換すると、結果は 2 つの文字列に連結された文字列になります
例:
var iResult2=NaN 1;
console.log(iResult2) ;//NaN
var iResult3=Infinity Infinity;
console.log(iResult3);//Infinity
var iResult4=-Infinity-Infinity
console.log(iResult4);// -Infinity
var iResult5="abc" "bcd";
console.log(iResult5);//abcbcd
var iResult6=5 "5"; log(iResult6);//55
2. 減算演算子:
var iResult=2-1;
console.log(iResult);//1
特殊性:
特定のオペランドは NaN、結果は NaN
無限大マイナス無限大、結果は NaN
-無限大マイナス-無限大、結果は NaN
無限大マイナス-無限大、結果は無限大
-無限大から -Infinity を引くと、結果は -Infinity になります
両方のオペランドが文字列の場合、結果は NaN になります
一方のオペランドのみが文字列の場合は、文字列を数値に変換してから演算を実行します
例:
var iResult2=NaN-1; > console.log(iResult2);//NaN
var iResult3=Infinity-Infinity;
console.log(iResult3);//NaN
var iResult4=-Infinity-( - Infinity);
console.log(iResult4);//NaN
var iResult5=-Infinity-Infinity;
console.log(iResult5);//-Infinity
var iResult6=Infinity-(-Infinity);
console.log(iResult6);//Infinity
var iResult7="abc"-"a"; ; //NaN
var iResult8="5"-5;
console.log(iResult8);//0
var iResult9="a"-5; console .log(iResult9);//NaN
2.9.6. 関係演算子
関係演算子 <, >, <=, >= 2 つの数値を実行します。 比較演算は戻り値を返します。ブール値。両方のオペランドが文字列の場合は、2 つの文字列の ASC コードを 1 つずつ比較します。一方のオペランドのみが文字列の場合は、文字列を数値に変換して比較します。
コードをコピーします
var bResult="B"<"a";
console.log(bResult);//true
var bResult="b"<" a";
console.log(bResult);//false
var bResult="13"<"2";
console.log(bResult);//true
var bResult =13<"2";
console.log(bResult);//false
var bResult=-1<"a";
console.log(bResult) ;//false
17 行目のコードでは、「a」が数値に変換されると NaN が返され、NaN を含む関係演算はすべて false を返す必要があります。
2.9.7. 等号演算子
1. 等号と不等号
ECMAScript では、等号 (==) と不等号 (!=)両方ともブール値を返します。 2 つのオペランドが等しいかどうかを判断するには、両方のオペランドの型変換が行われます。変換規則は次のとおりです。
オペランドがブール値の場合は、等しいかどうかを確認する前に数値に変換します。 false は 0 に変換され、true は 1 に変換されます。
一方のオペランドが文字列で、もう一方のオペランドが数値の場合は、等しいかどうかをチェックする前に文字列を数値に変換してみます。
一方のオペランドがオブジェクトで、もう一方のオペランドが文字列の場合、等しいかどうかをチェックする前にオブジェクトを文字列に変換してみます。
一方のオペランドがオブジェクトで、もう一方のオペランドが数値の場合は、等しいかどうかをチェックする前にオブジェクトを数値に変換してみます。
比較を行う場合、演算子は次の戻り規則にもに従います。
値 null と unknown は等しい
等価性をチェックする場合、null と unknown を他の値に変換することはできません。
オペランドが NaN の場合、等号は false を返し、等号以外は true を返します。重要: 両方のオペランドが NaN であっても、規則に従って NaN は NaN と等しくないため、等号は false を返します。
両方のオペランドがオブジェクトの場合、それらの参照値が比較されます。 2 つのオペランドが同じオブジェクトを参照する場合、等号は true を返します。それ以外の場合、2 つのオペランドは等しくありません。
例:
console .log( null==unknown);//true
console.log("NaN"==NaN);//false
console.log(5==NaN);//false
コンソール.log( NaN==NaN);//false
console.log(NaN!=NaN);//true
console.log(false==0);//true
console.log (true= =1);//true
console.log(true==2);//false
console.log(unknown==0);//false
console.log(null) ==0 );//false
console.log("5"==5);//true
2. 一致する符号と一致しない符号
が等しい等号 不等号と同様の演算子は、等号と不等号です。これら 2 つの演算子は、等しいかどうかをチェックする前に型変換を実行しないことを除いて、等号および不等号と同じことを行います。一致する符号は 3 つの等号 (===) で表され、一致しない符号は感嘆符と 2 つの等号 (!==) で表され、型変換なしでオペランドが等しい場合にのみ True が返されます。例:
console.log("55 "==55 );//true
console.log("55"===55);//false
console.log("55"!=55);//false
コンソール.log(" 55"!==55);//true
2.9.8、条件演算子
条件演算子は他の言語と同じです: variablebe=boolean_expression?true_value:false_value ;
例:
function Max( iNum1,iNum2){
return iNum1>=iNum2?iNum1:iNum2;
}
console.log(Max(1,3));//3
console.log(Max(3) ,1));/ /3
2.9.9. 代入演算子
単純な代入演算子は等号 (=) によって実装され、単に右側の値を代入します。等号の左側の変数に等号を付けます。例:
var iNum=10;
複合代入演算は、乗算演算子、加法演算子、または変位演算子と、等号 (=)。これらの代入演算子は、次の一般的なケースの短縮形です:
var iNum=10;
//
var iNum=10;
と同等主要な算術演算と他のいくつかの演算には複合代入演算子があります:
乗算/代入 (*=)
除算/代入 (/=)
モジュロ/代入 (%=)
加算/代入 (=)
減算/代入 (-=)
左シフト/代入 (<<=)
符号付き右シフト/代入 (>>=)
符号なし右シフト/assignment (>>>=)
2.9.10、カンマ演算子
1 つのステートメントで複数の操作を実行するには、カンマ演算子を使用します。例:
var iNum=1,iNum2=2,iNum3=3;
カンマ演算子は変数宣言で最も一般的に使用されます。