ECMAScript定义了3个乘性操作符: 乘法、除法、求模。在操作数为非数值的情况下会先调用Number()函数执行自动的类型转换。
- 乘法乘法操作符由一个星号( * )表示,用于计算两个数值的乘积。
//1.如果两个操作数都是数值,执行常规的乘法计算 var result = 23 * 2; alert(result); //46 //2.如果两个操作数都是数值,并且乘积超过了ECMAScript数值的表示范围,返回Infinity或-Infinity var result1 = -Number.MAX_VALUE *Number.MAX_VALUE; alert(result1); //-Infinity //3.如果有一个操作数是NaN,结果为NaN var result2 = NaN * 2; alert(result2); //NaN //4.如果是Infinity与0相乘,结果是NaN var result3 = result1 * 0; alert(result3); //NaN //5.如果是Infinity与非0数值相乘,结果为Infinity或-Infinity var result4 = result1 * 3; alert(result4); //-Infinity //6.如果是Infinity与Infinity相乘,结果是Infinity var result5 = result1 * result1; alert(result5); //Infinity //7.如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后在应用上面的规则。
- 除法除法用一个斜线符号表示( / )。
//1.如果操作数都是数值,执行常规的除法计算 var result = 6 / 3; alert(result); //2 //2.如果商超过了ECMAScript数值的表示范围,在返回Infinity或-Infinity //3.如果有一个数是NaN,则结果是NaN var result1 = NaN / 2; alert(result1); //NaN //4.如果是Infinity 被Infinity除,结果是NaN var result2 = Infinity / Infinity; alert(result2); //NaN //5.如果是零被零除,结果是NaN var result3 = 0 / 0; alert(result3); //NaN //6.如果是非零有限数被零除,则结果是Infinity或-Infinity var result4 = 4 / 0; alert(result4); //Infinity //7.如果有一个操作数不是数值,则在后台调用Number()将其转换为数值
alert(Infinity / 5); //Infinity
alert(5 / Infinity); //0 - 求模
求模(求余)操作符由一个百分号( % )表示。
//1.如果操作数都是数值,执行常规计算,返回余数 alert(6 % 4); //2 //2.被除数是无限大,除数是有限大数值,结果NaN alert(Infinity % 5); //NaN //3.被除数有限大数值,除数无限大,结果是被除数 alert(6 % Infinity); //6 //4.被除数是有限大的数值,除数是零,结果是NaN alert(6 % 0); //NaN //5.被除数是0,结果为0 alert(0 % 2); //0 alert(0% Infinity); //0 //6.Infinity 被Infinity除,结果是NaN alert(Infinity % Infinity); //NaN //7.如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,在应用上面规则