Javascript运算符
基本的算数运算符是*(乘法)、/(除法)、%(除法)、%(求余)、+(加法)和-(减法)
1、除法运算(/):在js中所有的数字都是浮点型,所以除法运算/的结果也是浮点型,例如5/2的结果是2.5而不是2,这是js和其他区分整型和浮点型数字编程语言的不同。
另外要注意的是:
5/0 //结果为正无穷大
-5/0 //结果为负无穷大
0/0 //结果为NaN
所有这些运算的结果都不会出错。
2、求余运算(%):运算符(%)计算第一个操作数对第二个操作数的模(即第一个操作数除以第二个操作数的余数),结果的符号和第一个操作数(即被除数)的符号保持一致
例如:
5%2=1
-5%2=-1
求余运算的操作数通常都是整数,但也适用于浮点数,例如:6.5%2=0.5
3、“+”运算符:二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:
1+2 //3
“he”+“llo” //”hello”
“1”+“2” //“12”
①当两个操作数都为数字时,“+”结果还是数字
②当两个操作数都为字符串时,“+”结果还是字符串
③其他情况则需要进行类型转换,运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串的类型转换,如果其中一个操作数为字符串或者转换为字符串的对象,则另外一个操作数也会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like),则进行算术加法运算。
从技术上讲,加法操作符的行为表现为:
①如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始类值(js类型转换:http://www.cnblogs.com/dodomonster/p/5232769.html):日期对象通过toString()方法执行转换,其他对象则通过valueOf()方法执行转换(如果valueOf()方法返回一个原始值的话)。由于多数对象都不具备可用的valueOf()方法,因此它们会通过toString()方法来执行转换。
②在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串连接。
③否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。
例如:
1+2 //3:加法
“1”+“2” //“12”:字符串连接
“1”+2 //“12”:数字转换为字符串后进行字符串连接
1+{} //“1[object object]”: 对象转换为字符串后进行字符串连接
true+true //2:布尔值转换为数字后做加法
2+null //2:null转换为0后做加法
2+undefined //NaN:undefined转换为NaN后做加法
浙公网安备 33010602011771号