ECMAScript运算符之《四则运算符 – 乘性运算符》
ECMAScript 乘性运算符分一下几个:
1、乘法运算符,由星号(*)表示,用于两数相乘
2、除法运算符,由斜杠(/)表示,用第二个运算数除第一个运算数
3、取模运算符,由百分号(%)表示
注意:乘性运算符还具有一些自动转换功能
PS:乘性运算符 + 加性运算符 = 四则运算操作符(这里单独分离出来说了)。
也就是说加减乘除为四则运算符,取模是属于除法(除法(余数)运算符)里面。
一、乘法运算符(*)表示
乘法还有一些特殊行为:
1、如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity
2、如果某个运算数是 NaN,结果为 NaN
3、Infinity 乘以 0,结果为 NaN
4、Infinity 乘以 0 以外的任何数字,结果为 Infinity 或 -Infinity
5、如果其中一个为不是数字的字符串得出NaN
6、如果其中一个为数字的字符串,程序自动转换为数字类型计算
老办法来点例子乐呵乐呵:
一、如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity
var num = 2*(Math.pow(99,999));
console.log(num); //Infinity
二、如果某个运算数是 NaN,结果为 NaN
console.log(NaN*6); //NaN
三、Infinity 乘以 0,结果为 NaNconsole.log(Infinity*0); //NaN
四、Infinity 乘以 0 以外的任何数字(包括Infinity),结果为 Infinity 或 -Infinity
console.log(Infinity*0.2);
console.log(-Infinity*0.2);
console.log(-Infinity*Infinity);
五、如果其中一个为不是数字的字符串得出NaN
console.log("abc"*5);//NaN
六、如果其中一个为数字的字符串,程序自动转换为数字类型计算
console.log("12"*2);//24
二、除法运算符,(/)表示
与乘法运算符相似,在处理特殊值时,除法运算符也有一些特殊行为:
1、如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity
2、如果某个运算数是 NaN,结果为 NaN
3、Infinity 被 Infinity 除,结果为 NaN
4、Infinity 被任何数字除,结果为 Infinity
5、0 除一个任何非无穷大的数字,结果为 NaN
6、Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity
7、如果其中一个为不是数字的字符串得出NaN
8、如果其中一个为数字的字符串,程序自动转换为数字类型计算
来点该死的例子:
一、如果结果太大或太小,那么生成的结果是 Infinity 或 -Infinity
console.log((Math.pow(99,999))/1)
二、如果某个运算数是 NaN,结果为 NaN
console.log(NaN/6); //NaN
function(){ //外汇跟单
三、Infinity 被 Infinity 除,结果为 NaN
console.log(Infinity/Infinity); //NaN
四、Infinity 被任何数字除,结果为 Infinity
console.log(Infinity/3); //Infinity
五、0除一个任何非无穷大的数字,结果为 Infinity(W3C说是NaN但是实际上是Infinity)
console.log(123/0); //Infinity
六、Infinity 被 0 以外的任何数字除,结果为 Infinity 或 -Infinity(测试发现被0除以也是Infinity)
console.log(Infinity/0); //Infinity
console.log(-Infinity/0); //-Infinity
console.log(-Infinity/2); //-Infinity
七、如果其中一个为不是数字的字符串得出NaN
console.log("asd"/2); //NaN
八、如果其中一个为数字的字符串,程序自动转换为数字类型计算
console.log("12"/2); //6
三、取模运算符,由百分号(%)表示
与其他乘性运算符相似,对于特殊值,取模运算符也有特殊的行为:
1、如果被除数是 Infinity,或除数是 0,结果为 NaN
2、Infinity 被 Infinity 除,结果为 NaN
3、如果除数是无穷大的数,结果为被除数
4、如果被除数为 0,结果为 0
5、如果其中一个为不是数字的字符串得出NaN
6、如果其中一个为数字的字符串,程序自动转换为数字类型计算
一、如果被除数是 Infinity,或除数是 0,结果为 NaN
console.log(Infinity%10);//NaN
console.log(28%0);//NaN
二、Infinity 被 Infinity 除,结果为 NaN
console.log(Infinity%Infinity);//NaN
三、如果除数是无穷大的数,结果为被除数
console.log(10%Infinity);//10
四、如果被除数为 0,结果为 0
console.log(0%Infinity);//0
console.log(0%10);//0
五、如果其中一个为不是数字的字符串得出NaN
console.log("asd"%2);//NaN
六、如果其中一个为数字的字符串,程序自动转换为数字类型计算
console.log("123"%5);//3