你的位置:首页 > Java教程

[Java教程]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后做加法