JavaScript基本概念——各种操作符详解之加性、乘性操作符详解、关系操作符详解

1.乘性操作符

(1)乘法:符号 * ,用于两个数值计算。遵循如下规则:

  • 操作数都是数值,执行正常的乘法计算。两个正数相乘为正数,负数相乘为正数。
  • 一个操作数为NaN,结果为NaN
  • Infinity * 0,结果为NaN
  • Infinity * 非0,结果Infinity或-Infinity,取决于非0的符号
  • Infinity * Infinity ,结果Infinity
  • 一个操作数不是数值,先使用Number()方法将其转换为数值,再使用以上规则。

(2)除法:符号 /,与 * 相似,规则如下:

  • 操作数都是操作数都是数值,执行正常的除法计算。两个正数相乘为负数,负数相除为负数,一个有符号,一个无符号,结果为负数
  • 一个操作数为NaN,结果为NaN
  • Infinity /Infinity ,结果为NaN
  • 零被零除,结果为NaN
  • 非0值被零除,结果四Infinity或-Infinity,符号取决于非0的符号。
  • Infinity被任何非零值出,结果Infinity或-Infinity,符号取决于非零的符号
  • 如果一个操作数不是数值,调用Number()转换为数值,在应用以上规则。

(3)求模:符号 % ,如var result = 25 % 5 ; //结果为1.规则类似 * , / 。

2.加性操作符

(1)加法 :符号 + ,不只用于数值计算,有一定的转换规则,如下:

  • 一个操作数为NaN,结果为NaN
  • Infinity + Infinity = Infinity
  • -Infinity +(-Infinity) = -Infinity
  • +0+(+0) = +0
  • -0+(-0) =-0
  • +0+(-0) =+0

当一个操作数为字符串时遵循如下规则:

  • 如果两个操作数都是字符串,将两个字符串拼接。
  • 只有一个操作数值字符串,则将另一个数值转换为字符串,尽心字符串拼接。
	var result = 1 +1 ; 	// 2
	var result2 = 1 +"1" ;	// "11"
	var result3 = "ab"+"1";	//"ab1"
	var result4 = "1+1 = " +(1+1) ;	//"1+1 = 2"
	var reslut5 = "1+1 = "+1+1;	//"1+1 = 11"

(2)减法:符号 - ,不只用于数值计算,有一定的转换规则,如下:

  • 一个操作数为NaN,结果为NaN
  • Infinity - Infinity = Infinity
  • Infinity -(-Infinity) =NaN
  • Infinity+(-Infinity) = NaN
  • +0-(+0) = +0
  • -0-(-0) =+0
  • -0-(+0) =-0
  • 如果一个操作数是字符串、布尔值、null或undefined,先调用Number()方法,转换为数值,再应用以上规则进行数值运算,如果转换后的结果是NaN,则结果就是NaN
  • 如果一个操作数是对象,则调用对象的valueof()方法 (或者toString()方法) 以取得表示操作数的数值,在应用以上规则进行运算,如果转化后的结果是NaN,则结果就饿会死NaN。
var s1 = 5- true;	//	4
var s2 = NaN -1; 	//NaN
var s3 = 5- "";		//0 ,""转为0
var s4 = 5 -"2" ;	// 3 ,"2"转为2
var s5 = 5 -null ;	//5,null 转为0```
3. 关系操作符

关系操作符有 > ,<,<=,>=

  • 正常的数值关系比较,和数学一样。
  • 若是字符串之间的比较,我们需要清楚操作数之间比较的是他们相对应的ASCII码
  • 若是字符串和数值比较,字符串转换为数值在进行数值比较NaN与任何相比较都是false
	var s1 = 6 < 4 ;	//false
	var s2 = "apple" > "orange";	//false
	var s3 = "apple"<"Zero"	;//true,小写字母的字符编码全大于大写字母
	var s4 = "23"<3;	//false,"23" 转为23
	var s5 = "asb"<2 ;	//false,"asb" 转为NaN


欢迎大家一起讨论,进步!!!

你可能感兴趣的:(JavaScript)