第三章JavaScript基本概念(三)
4466 ワード
4.操作子
_; ECMA-2262は、演算子、ビット操作子、関係操作子、および等しい操作子を含むデータ値を操作するための操作子のセットを記述している.ECMAScriptオペレータの違いは、文字列、数字値、ブール値、またはオブジェクトなどの多くの値に適用できることである.オブジェクトに適用される場合、対応するオペレータは、通常、オブジェクトのvalueOf()とToStering()の方法を呼び出して、動作可能な値を取得する.
4.1一元操作子
_; ECMAScriptの1元オペレータ(+,-,+,-)は、他の言語と似たような整数インクリメント、正数、負数の役割の他に、文字列、論理値、浮動小数点値、オブジェクトにも適用されます.異なる値を適用する場合、1元のオペレータは以下の規則に従います.文字列:数字だけを含む文字列または空の列=>まず数字に変換します.もう一つの操作を行います.文字列変数は最終的に数値変数に変わります.他の文字列=>NaN ブール値:true=>1、false=>0、そして1元オペレータ動作を行い、ブール値変数は最終的に数値変数に変換されます. 浮動小数/整数:1元オペレータ操作を実行します. オブジェクト:まず、valueOf()方法を呼び出し、動作可能な値を得る.この値に上記の規則を適用します.結果がNaNであれば、toString()メソッドを呼び出し、上記規則を適用する.最終的には変数を数値変数に変換したいです. 4.2ビット操作子
_; ECMAScriptにおけるビット操作子は主に以下を含む.~:ビットの逆 &:ビットと |:ビット別または ^:ビット別または <
>:符号付き右シフト >>:符号なし右シフト 非数値にオペレータを適用すると、Number()関数を使用して値を数値に変換し(自動完了)、ビット操作を適用します.得られた結果は数値です.
4.3ブール操作子
ECMAScriptには三つのブールオペレータがあります.NOT(論理非、!)、AND(論理和、&&&)とOR(論理または124; 124; 124; 124;).
_; NOT(!)演算子は、ECMAScriptのいずれかの値に適用できます.この値がどのタイプであれ、このオペレータはブール値を返します.NOTオペレータはまずその操作数をブール値に変換してから反対を求めます.ブール値に変換する規則はBoolean()関数と同じです.具体的なBoolean()関数変換規則は記事を参照してください.
_; AND(&&)演算子は、ECMAScriptでは、任意の種類の操作数にも適用できます.ANDオペレータは基本原則に従います.最初の操作数がtrueであれば、直接に第二の操作数に戻ります.最初の動作数がfalseである場合、最初の動作数に直接戻ります.ANDオペレータの具体的な変換ルールは以下の通りです.操作数がnull/NaN/undefined/"であれば、直接null/NaN/undefined/" に戻ります.最初の操作数が対象であれば、直接に第2の操作数 に戻る.第二の操作数がオブジェクトである場合、第一の操作数の結果がtrueである場合にのみ、そのオブジェクトに戻ります. 両方の操作数が対象である場合、第2の操作数 に戻る.
_; OR(?124; 124;)オペレータはANDオペレータと似ています.ECMAScriptではどのタイプの操作数にも使用できます.ORオペレータは基本原則に従います.最初の操作数がfalseの場合、直接に第二の操作数に戻ります.最初の操作数がtrueなら、直接最初の操作数に戻ります.ORオペレータの具体的な変換ルールは以下の通りです.もし両方の動作数がnull/NaN/undefined/"であれば、直接null/NaN/undefined/" に戻ります.最初の操作数がオブジェクトである場合、直接に第1の操作数 に戻る.第一操作に属する求値結果がfalseであれば、直接に第二操作数 に戻る.両方の操作数が対象であれば、直接に第1の操作数 に戻る.
ORの特性を利用して、変数のnullまたはundefined値の割り当てを避けることができます.たとえば:
_; ECMAScriptは3つの乗法演算子を定義しました.乗算、除算、求モールドです.これらのオペレータは他の言語の対応するオペレータと似ていますが、ECMAScriptの乗組オペレータは非数値のタイプにも適用されます.計算に参加した操作数が数値でない場合、バックグラウンドはまずNumber()変換関数を使って数値に変換して、数値変数を返します.
乗法オペレータは以下の規則に従う.操作数がすべて数値である場合、通常の乗算で計算されます.積がECMAScriptの表示範囲を超えたら、Infinityまたは-Infinityに戻ります. 操作数がある場合NaNはNaN に戻ります. Infinityは0と乗算し、NaN に戻る. Infinityは、非0値と乗算され、InfinityまたはInfinityに戻り、正負は、シンボル操作数のあるシンボル に依存する. InfinityとInfinityを掛け合わせた結果、Infinity です.操作数が数値ではない場合は、バックグラウンドでNumber()関数を呼び出して数値に変換し、上記の規則を適用する. 除法のルールは以下の通りです.操作数がすべて数値である場合、従来の除算計算を実行する.ECMAScript値の表示範囲を超えた場合、Infinityまたは-Infinityに戻ります. 操作数がNaNであれば、NaN に戻る. InfinityはInfinityによって削除され、NaN に戻ります. 0はゼロになり、NaN に戻る.非ゼロ有限数はゼロになり、結果はInfinityまたは-Infinity である. Infinityは任意の数で削除され、Infinityまたは-Infinity に戻ります.操作数が数値でない場合は、バックグラウンドでNumber()関数を呼び出して対応する数値に変換し、上記の規則 を適用する.
_; 求模式的操作規則は以下の通りである.両方の動作数が数値である場合、従来の除算法に従って計算し、割り算された剰余数 を返します.除数は無限大であり、除数は有限値であり、NaN に戻る.除数は有限値であり、除数は0であり、NaN に戻る. Infinity%InfinityはNaN に戻ります.被除数有限値は、無限大であり、除数 を返します.は除数され、0に戻り、1つの動作数が数値でない場合は、バックグラウンドでNumber()関数を呼び出して対応する数値に変換し、上記規則 を適用する.
4.5アダプティブ操作子
_; はECMAScriptにおいて、加算(+)と減算(-)があります.アダプティブ操作は、アダプティブオペレータと同様であり、バックグラウンドで異なるデータタイプを変換することもある.両方の操作数が数値である場合、通常の足し算で計算し、次の規則に従って結果を返します.操作数がNaNであれば、NaN に戻る. Infinity+Infinity=Infinity -Infinity+-Infinity=-Infinity Infinity+-Infinity=NaN +0++0=+0 -0+-0=-0 +0+-0=+0 ただし、動作数が文字列である場合、加算の適用規則は以下の通りです.、両方の操作数が文字列である場合、第二の文字列を第一の文字列と連結する .操作数が文字列である場合、他の操作数を文字列に変換して、この2つの文字列をつなぎ合わせます.オブジェクトに対して、数字とブール値は、それらのtoString()方法を呼び出し、undefinedとnullに対しては、String()関数を呼び出して、「undefined」と「null」を返します. は加算規則と似ています.ECMAScriptの減算オペレータは各種データタイプの変換を処理する時、同様にいくつかの特殊な規則に従います.以下の通りです.操作数がNaNの場合、NaN に戻ります. Infinity-Infinty=NaN -Infinity-Infinity=NaN Infinity-Infinity=Infinity -Infinity-Infinity=-Infinity +0-+0=+0 +0--0=-0 -0--0=+0 操作数が文字列、ブール値、nullまたはundefinedである場合、バックグラウンドでNumber関数を呼び出して数値に変換し、前の規則に従って計算します. 操作数がオブジェクトである場合、オブジェクトのvalueOf()メソッドを呼び出すと、NaNの値が得られた場合、減算の結果はNaNとなります.オブジェクトがvalueOf()方法がない場合、そのtostring()方法を呼び出して、得られた文字列を数値に変換します. .
_; ECMA-2262は、演算子、ビット操作子、関係操作子、および等しい操作子を含むデータ値を操作するための操作子のセットを記述している.ECMAScriptオペレータの違いは、文字列、数字値、ブール値、またはオブジェクトなどの多くの値に適用できることである.オブジェクトに適用される場合、対応するオペレータは、通常、オブジェクトのvalueOf()とToStering()の方法を呼び出して、動作可能な値を取得する.
4.1一元操作子
_; ECMAScriptの1元オペレータ(+,-,+,-)は、他の言語と似たような整数インクリメント、正数、負数の役割の他に、文字列、論理値、浮動小数点値、オブジェクトにも適用されます.異なる値を適用する場合、1元のオペレータは以下の規則に従います.
_; ECMAScriptにおけるビット操作子は主に以下を含む.
4.3ブール操作子
ECMAScriptには三つのブールオペレータがあります.NOT(論理非、!)、AND(論理和、&&&)とOR(論理または124; 124; 124; 124;).
_; NOT(!)演算子は、ECMAScriptのいずれかの値に適用できます.この値がどのタイプであれ、このオペレータはブール値を返します.NOTオペレータはまずその操作数をブール値に変換してから反対を求めます.ブール値に変換する規則はBoolean()関数と同じです.具体的なBoolean()関数変換規則は記事を参照してください.
_; AND(&&)演算子は、ECMAScriptでは、任意の種類の操作数にも適用できます.ANDオペレータは基本原則に従います.最初の操作数がtrueであれば、直接に第二の操作数に戻ります.最初の動作数がfalseである場合、最初の動作数に直接戻ります.ANDオペレータの具体的な変換ルールは以下の通りです.
_; OR(?124; 124;)オペレータはANDオペレータと似ています.ECMAScriptではどのタイプの操作数にも使用できます.ORオペレータは基本原則に従います.最初の操作数がfalseの場合、直接に第二の操作数に戻ります.最初の操作数がtrueなら、直接最初の操作数に戻ります.ORオペレータの具体的な変換ルールは以下の通りです.
ORの特性を利用して、変数のnullまたはundefined値の割り当てを避けることができます.たとえば:
var myObject = preferredObject || backupObject;
4.4乗法操作子_; ECMAScriptは3つの乗法演算子を定義しました.乗算、除算、求モールドです.これらのオペレータは他の言語の対応するオペレータと似ていますが、ECMAScriptの乗組オペレータは非数値のタイプにも適用されます.計算に参加した操作数が数値でない場合、バックグラウンドはまずNumber()変換関数を使って数値に変換して、数値変数を返します.
乗法オペレータは以下の規則に従う.
_; 求模式的操作規則は以下の通りである.
4.5アダプティブ操作子
_; はECMAScriptにおいて、加算(+)と減算(-)があります.アダプティブ操作は、アダプティブオペレータと同様であり、バックグラウンドで異なるデータタイプを変換することもある.両方の操作数が数値である場合、通常の足し算で計算し、次の規則に従って結果を返します.