JavaScriptの算術演算子

3257 ワード

JavaScript演算子
足し算
加算(+)演算の使い方は以下の通りです.
var result = 1 + 2;		//3
加算演算子の両方が数値である場合、通常の加算を行い、次の規則に従って結果を返します.
  • 操作数がNaNであるとNaNとなる.
  • Infinity加Infinityであれば、結果はInfinityです.
  • -Infinityプラス-Infinityの場合、結果は-Infinityです.
  • Infinityプラス-InfinityであればNaNとなります.
  • +0プラス+0であれば、結果は+0です.
  • -0プラス-0の場合、結果は-0です.
  • +0プラス-0であれば、結果は+0です.
  • ただし、操作数が文字列である場合は、次の規則に従います.
  • 操作数が文字列の場合、最初の操作数と第二の操作数をつなぎ合わせます.
  • ただ一つの操作数が文字列である場合、もう一つの操作数を文字列に変換して、二つの悪文字列をつなぎ合わせます.
  • 操作数オブジェクト、数値またはブール値がある場合、それらのtoString()メソッドを呼び出して該当する文字列値を取得し、前の文字列の規制を適用する.nullとundefinedに対しては、それぞれString()メソッドを呼び出して文字列「undefined」と「null」を取得します.例を挙げます.
  • var result = 5 + 5;			//      
    console.log(result);			//10
    var result1 = 5 + "5";		//                
    console.log(result1);		//"55"
    
    減算
    減算(-)の使い方は以下の通りです.
    var result = 2 - 1;		//1
    
    加算演算子と似ています.JavaScriptの減算はデータを処理する時にも特殊なルールに従います.
  • 減算オペレータの両方が数値である場合、従来の減算
  • を実行します.
  • 操作数がNaNであるとNaNとなる.
  • InfinityマイナスInfinityであればNaNとなります.
  • -Infinityマイナス-InfinityであればNaNとなります.
  • Infinityマイナス-Infinityであれば、結果はInfinityです.
  • -InfinityマイナスInfinityの場合、結果は-Infinityです.
  • +0マイナス+0であれば、結果は+0です.
  • -0マイナス-0であれば、結果は+0です.
  • -0マイナス+0であれば、結果は-0です.
  • 文字列が文字列、ブール値、nullまたはundefinedである場合、バックグラウンドは、Number()関数を呼び出して数値に変換し、上記の規則に従って減算します.Number()関数変換の結果がNaNであれば、演算の結果はNaNとなります.
  • 操作数がオブジェクトである場合、valueOf()方法を呼び出してそのオブジェクトの数値を取得し、取得した値がNaNである場合、減算の結果はNaNであり、オブジェクトがvalueOfメソッドを持っていない場合、tostring()方法を呼び出し、得られた文字列を数値に変換する.例を挙げます.
  • var result1 = 5 - true;		
    var result2 = NaN - 1;		
    var result3 = 5 - 3;		
    var result4 = 5 - "";		
    var result5 = 5 - "2";		
    var result6 =  5 - null;	
    console.log(result1);		//4,  true   1
    console.log(result2);		//NaN
    console.log(result3);		//2
    console.log(result4);		//5,  ""    0
    console.log(result5);		//3,  "2"    2
    console.log(result6);		//5,  null    0
    
    掛け算
    乗算(*)の使い方は以下の通りです.
    var result = 3 * 5;		//15
    
    特別な値を扱う場合、乗算は以下の規則に従います.
  • 動作の数がすべて数値である場合、通常の乗算演算
  • が実行される.
  • 操作数がNaNであるとNaN
  • となる.
  • Infinityが0と乗算されるとNaN
  • となります.
  • Infinityが非0の数と乗算されると、結果はInfinityまたはInfinityであり、シンボル操作数のあるシンボル
  • に依存する.
  • InfinityがInfinityと乗じると、結果はInfinity
  • です.
  • 操作数が数値ではない場合、バックグラウンドでNumber()関数を呼び出して値
  • に変換する.
    法を割る
    除算操作子(/)の使い方は以下の通りです.
    var result = 15 / 3;
    console.log(result);		//5
    
    除算は掛け算と似ています.特殊な処理規則もあります.
  • 動作の数がすべて数値である場合、従来の除算演算
  • を実行する.
  • 操作数がNaNであるとNaN
  • となる.
  • 0が0と0と割り算された場合、NaN
  • が結果として生じる.
  • 非0の有限数が0によって除かれると、結果はInfinityまたはInfinityであり、シンボル操作数のあるシンボル
  • に依存する.
  • InfinityがInfinityと除算されるとNaN
  • となる.
  • 操作数が数値ではない場合、バックグラウンドでNumber()関数を呼び出して値
  • に変換する.
    残りを取る(型を求める)
    剰余計算の使い方は以下の通りです.
    var result = 10 % 3;
    console.log(result);		//1
    
    残りは乗除と似ています.特殊な値を処理するために以下の特殊な規則があります.
  • 動作の数がすべて数値である場合、従来の除算演算が実行される.割り算の余りを返します.
  • 除数が無限大であり、除数が有限値である場合、NaN
  • となる.
  • 除数が有限値であり、除数が0であればNaN
  • となる.
  • InfinityがInfinityによって除かれた場合、NaN
  • となります.
  • 除数が有限値であり、除数が無限大の値である場合、その結果、被除数
  • である.
  • 除数がゼロであれば、結果はゼロ
  • である.
  • 操作数が数値ではない場合、バックグラウンドでNumber()関数を呼び出して値
  • に変換する.