js中的运算符(大量例子来说明)

一、运算操作符(将以大量例子来助于理解)

1、+
1) “+”作用:数学运算、字符串链接
2) 任何数据类型加字符串都等于字符串
例:

var a = “a”+ true + 1; //打印 atrue1
var a = 1 + “a” + 1 + 1; //打印 1a11
var a = 1 + 1 + “a” + 1 + 1; //打印 2a11,从左向右运算
var a = 1 + 1 + “a” +( 1 + 2); //打印 2a3

2、- (减) * (乘) /(除)

var a = 01//等于-1 
var a = 2 * 1//等于 2 
var a = 0 / 0//答案是 NaN,应该得出一个数字类型的数,但是没法表达,就用 NaN (NaN 是 Not a Number 非数,不是数,但是是数字类型
var a = 1 / 0; //是 infinity
var a = -1 / 0; //是-infinity 

3、%,摩尔,模,是取余数的意思
例:

var a =5%2 //5%2 是五除二的余数,商二余一
var a =5%1 //是五除一的余数,结果是 0
var num = 1 % 5; //意思是 1 除以 5 的余数。商 0 余 1 
var a =4%6 //是四除六的余数,结果是 4 
var a = 4;a % = 5;document.write(a); // 4 
var a = 0;a % = 5;document.write(a); //0 
var a = 10;a %= 2;document.write(a); //0 
var a = 3;a % = 4; //4

“-”,“*”,“/“,“%”,”=“,“()” 优先级”=“最弱【赋值符号优先级最低】,”()”优先级较高

4、++

var a = 10; a = a + 1; //结果 11

例:
var a = 1;
a = a + 1;写成 a ++是一种简化形式“++”,是自身加一,再赋值给自身
a++是 a=a+1 的简化形式

例:

var a =10;document.write(++a );document.write(a); //答案 11;11

是先执行++,再执行本条语句 document.write(++a)

var a =1;document.write(a ++);document.write(a); //答案 1;2`

是先执行语句(document.write(a)),再++,所以第一次打印的还是 a,第二次打印 a++后的值

var a =10var b=++a -1+a++;document.write(b + “ ” + a) //答案 21 12

先++a,这个时候 a=11,再-1,再加 a,b 就是 21,最后++,a 就是 12赋值的顺序自右向左,计算的顺序自左向右(按数学来)

 var a =1var b = a ++ + 1;document.write(b)//答案 2,先执行 var b =a+1, 再 a++

var a =1var b = a ++ + 1;document.write(a);document.write(b)//答案 2,2 

var a =1var b = ++a + 1;document.write(a);document.write(b)//答案 2,3 

var i = 1;var a = i++; //答案 a = 1; 此时 i 先将值 1 赋给 a,然后自己+1,i=2;

var b = ++i; //答案 b = 3;此时 i 先自己+1 为 3.再给 b 赋值,b=3;

*5、--
“- -”,是自身减一,在赋值给自身

var a = 1;var b = a-- + -- a;document.write(b); //答案 ,先执行--a;此时 a 变成0,然后第一个 a 也变成 0,那么 b = 0-- + --a 

var a = 1;var b = --a + --a;document.write(b); //答案-1 

var a = 1;document.write(a++);document.write(a); //答案 1;2 

var a =1; var b = a ++ +1;document.write(b); //答案 2 ,a 写在后面就后运行,先计算 a+1=2 赋值给 b 后再++

6、+= 和 -=

var a =10;a ++;a ++;a ++;加十个
简化写法:a +=10;也是 a = a+10;

var a =10;a += 10 + 1; //答案 21

例 var a = 1;a = a + 10;//等于 a+=10

a++是 a +=1 的写法

7、/=

var a=10;a/=2; //答案 5,是除二赋给自身的意思

8、=*

var a =10;a *=2; //答案:20,是乘二赋给自身的意思

9、%=

var a=10;a%=2; //答案:0, 10 能整除 2,余数是 0,取余,余数赋给自身。
var a=3;a%=4; //答案:3,3 除以 4,余数为 3,余数赋给自身。
var a=0;a%=4; //答案:0,0 除以 4,余数为 0,余数赋给自身。
var a = 1;a% =10; //答案:1,1 除以 10,余数为 1,余数赋给自身。

二、比较运算符

注:“>”,”<”,”==”,“>=”,“<=”,”!=”比较结果为 boolean 值
但凡是运算符,都是要有运算的
用到布尔值,true 或 false
字符串的比较,比的是 ASCII 码(七位二进制 0000000)
1、> , <

var a = "a">"b";document.write(a); //答案是 false
var a = 1 > 2;document.write(a); //答案是 false 
var a = 1 <2;document.write(a); //答案是 true
var a = "1">"8";document.write(a); //答案是 false
var a = "10">"8";document.write(a); //答案 false,不是10和8比,是字符串一零和八比,先用开头的一和八比,比不过就不看第二位了;一样的就拿零和八比

2、= =,等不等于

var a = 1 == 2; //答案是说 1 等不等于 2,因为 1 肯定不等于 2,所以值false

var a = NaN == NaN; //答案是 false,NaN 不等于任何东西,包括他自己

var a = undefined == underfined; //答案是 true

var a = infinity == infinity; //答案是 true

var a = NaN == NaN; //答案是 false。非数 NaN 是不等于自己的

NaN 得不出数,又是数字类型,就是 NaN
3、>= , <= , !=(是否不等于,非等)
比较结果为 boolean 值:true 和 false

三、逻辑运算符

“&&”,“||”,“!“运算结果为真实的值

1、&&运算符

两个表达式:先看第一个表达式转换成布尔值的结果是否为真,如果结果为真,那么它会看第二个表达式转换为布尔值的结果,然后如果只有两个表达式的话,只看到第二个表达式,就可以返回该表达式的值了,如果第一位布尔值为
false,不看后面的,返回第一个表达式的值就可以了

运算符就是要求结果

var a = 1 && 2; //答案 2,如果第一位 1 为真,结果就为第二位的值 2 
var a = 1 && 2 + 2; //答案 4,如果 1 为真,结果就为 4 
var a = 0 && 2 + 2; //答案 0 
var a = 1 && 1 && 8; //答案 8,先看第一个是否为真,为真再看第二个,中途如果遇到 false,那就返回 false 的值
var a =1 + 1 && 11;document.write(a); //答案 0

如果是三个或多个表达式,会先看第一个表达式是否为真,如果为真,就看第二个表达式,如果第二个也为真,就看第三个表达式(如果为真就往后看,一旦遇到假就返回到假的值),如果第三个是最后一个表达式,那就直接返回第三个的结果如果第一个是假,就返回第一个值,当是真的时候就往后走,一旦遇到假,就返回

2>1 && document.write(‘成哥很帅’) //意思是如果 2 大于 1,那么就打 印成哥很帅,如果前面真才能执行后面的(相当于短路语句使用)

&&与运算符是有中断作用的,当短路语句使用(如果。。那么。。)

2、|| 运算符

var num = 1 || 3; //答案 1  
var num = 0 || 3; //答案 3 
var num = 0 || false; //答案是 false

看第一个表达式是否为真,如果为真,则返回第一个值,碰到真就返回,如果第一个表达式是假,就看第二个表达式,如果第二个是最后一个,就返回第二个的值

关注真假的说法:全假才为假,有一个真就为真

3、!非运算符,否的意思
先转成布尔值,再取反

var a = ! 123;document.write(a); //答案 false。123 的布尔值是 true,取反是 false
var a = ! “”;document.write(a); //答案 true。空串””布尔值是 false,取反是 true
var a = ! !“”;document.write(a); //答案 false,取反后,再反过来,结果不变
var a = true;a =!a;document.write(a) //答案 false,自身取反,再赋值给自身

!=非等于是表达他们到底等不等的

四、被判断为false的值

转换为布尔值会被认为false的值又 undefined、null、false、""、NaN、0

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值