javascript中的运算符

一:算术运算符

    +  -   *   /    %    ++    -- 

(加减乘)+  -   * 我就不太多描述了,这里的除(/)我重点说一下和java的区别:

javascript:(基本数据类型:number string null undefined boolean)

            1.当被除数和除数都为实数,除数不为0的时候,取精确值。(因为在javascript就只有number类型,不管是整数还是浮点数)

            2.当被除数和除数都为实数,除数为0的时候,结果为infinity。(因为在javascript就只有number类型,不管是整数还是浮点数)

java(基本数据类型:四类八种====》byte short int long float double boolean char)

            1.当被除数和除数都为整数,除数不为0的时候,取整。(4/3=1)

            2.当被除数和除数都为整数,除数为0的时候,编译可以通过,但是结果会抛出异常(java.lang.ArithmeticException)

            3.当被除数和除数有一个或者两个都是浮点数,除数不为0,取精确值。

            4.当被除数和除数有一个或者两个都是浮点数,除数为0,结果为infinity

求余:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>javascript求余</title>
 </head>
 <body>
	<script type="text/javascript">
		var a=2.5;
		document.write(a%2+"<br/>");
		document.write(a%0+"<br/>");
		var b=7;
		document.write(b%5+"<br/>");
		document.write(b%0+"<br/>");
	</script>
 </body>
</html>
0.5
NaN
2
NaN

由这个例子我们可以看出:

    当被除数和除数都为实数,并且除数为0的时候,结果是NaN(Not a number)不是一个数

++:是指一个变量自增一

++分为前++和后++:

    前++:先自增一,再参与运算。

    后++:先参与运算,再自增一。

例子:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>加加的运算</title>
 </head>
 <body>
		<script type="text/javascript">
			//前++:
			var a=2;
			var sum=++a*2+1;//先自增一,再参与运算。
			document.write(sum+":"+a+"<br/>");
			//后++
			var b=-3;
			var sum2=b++*2+1;//先参与运算,再自增一
			document.write(sum2+":"+b+"<br/>");
		</script>
 </body>
</html>
7:3
-5:-2

--:是值一个变量自减一,用法和++一样

二:关系运算符(比较运算符)

       <,>,<=,>=,!=,==,===

           这里重点说一下==和===的区别:

              相同点: 都是用来做判断的。 
              不同点: 
                              == : 不带有类型进行比较。
                              ===:带有类型进行比较。 

    例子:

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>等于的区别</title>
 </head>
 <body>
	<script type="text/javascript">
		var a=4;
		var b="4";
		if(a==b){//值是否相等
			document.write("yes(==)"+"<br/>");
		}else{
			document.write("no(==)"+"<br/>");
		}
		if(a===b){//值和类型是否相等
			document.write("yes(===)"+"<br/>");
		}else{
			document.write("no(===)"+"<br/>");
		}
	</script>
 </body>
</html>
yes(==)
no(===)

三:逻辑运算符
  &&(逻辑与) :  
  运算结果: 
  true && true  true 
  true && false false 
  false && true false 
  false && false false
  结论: 当左右两边的操作数只有一个是false时,结果就为false。

   逻辑与采用短路法运算,当第一个操作数的值为false时,右边的表达式不在参与运算 。


  ||: 逻辑或:
  true || true  true 
  true || false true 
  false || true true 
  false || false false

 结论: 当左右两边的操作数只要有一个是true时,结果就为true。

    逻辑或也采用短路法运算,当第一个操作数的值为true时,右边的表达式不在参与运算 。

上面的操作数都是boolean类型,也可以是其他类型:

var a=2; var b=3;
var andflag= a && b;
var orflag=a || b;
andflag等于3
orflag等于2

理由:在运算过程中,首先js会将&&和||两边的值转换成boolean类型,然后再算值,&&运算如果放回true,则取后面的值,如果||返回true,则取前面的值,而其中数值转换成boolean的规则是:对象,非零整数,非空字符串返回true,其他flase.

如 var  a = “”  ||  null  || 3  ||  4   —->    var a = fasel || false || true ||  true  结果为true  则返回第一个true,即是3

var b = 4 && 5 && null && 0   ——>   var b = true && true && false && false   结果是false   则返回第一个false   即是null .

这里需要和java区分:java的逻辑与和逻辑或的操作数只能是boolean类型

四:条件运算符(三目运算符)

表达式?value1:value2;

表达式的返回值是一个boolean类型,如果放回true则取value1,反之取value2。

不知道大家有没有觉得三目运算符和咱们所学的if...else语句很像呢?咱们一起看一下他们的区别吧

    他们的区别主要是if...else语句的结果没有返回值,而三目运算符一定有一个返回值。

五:赋值运算符

 =(赋值) +=(相当于a=a+b) -=(相当于a=a-b)   *=   (相当于a=a*b)    /=(相当于a=a/b)    %=(相当于a=a%b) 

    





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值