js运算符

1. 基本运算符

++

var a = 10; 
a = a + 1;
document.write(a);//结果 11

a = a + 1;可以写成 a ++形式“,”++”即自身加一,再赋值给自身。a++是 a=a+1 的简化形式

++a与a++的区别

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

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

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

a 写在后面就后运行,先计算 a+1=2 赋值给 b 后再++

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

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

document.write(++a );程序先执行a=a+1,再打印a=a+1后的结果

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(11),所以b 就是 21,最后++,所以a 就是 12
赋值的顺序自右向左,计算的顺序自左向右(按数学来)

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

程序先执行b=a+1,然后执行a++

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

程序先执行++a,然后执行b=a+1,所以b=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;

- -

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

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

先执行–a;此时 a 变成
0,然后第一个 a 也变成 0,那么 b = 0-- + --0

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

+=

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

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

a+=10等于a = a + 10;
a++也可以写成 a +=1

/=

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

*=

var a =10;
a *=2; //答案:20 乘二赋给自身

%=

例 `

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,余数赋给自身。`

练习

1.var a =123; var b =234;经过计算交换 a,b 的值
方法一普通方法:

var a=123;
var b=234;
var c = a; 
a = b; 
b = c;
document.write(a ,b);

方法二

var a=123;
var b=234;
 a = a + b; 
 b = a – b;
 a = a –b;
 document.write(a ,b);

2

var a =(10 * 34 / 2 + 1)%2,b=3;
b %= a + 3;
document.write(a++);
document.wtite(<br>);
document.write(--b);

document.write(a++);是 1(先打出 1 再++)
document.write(–b);是 2
b % =a + 3,3 的模等于 4,除不开再赋值给 b,b 还是 3

二、比较运算符

1、“>”,”<”,”==”,“>=”,“<=”,”!=”比较结果为 boolean 值true 或 false
字符串的比较,比的是 ASCII 码(七位二进制 0000000) >, <

 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,不是十和八比,是字符串一零和八比,先用开头的一和八比,比不过就不看第二位了;一样的就拿零和八比

 var a = 123;
document.write(a); 

运算结果为真实的值

= =,等不等于

`var a = 1 == 2;`
document.write(a); //答案是false,因为 1 肯定不等于 2

`var a = NaN == NaN;`
document.write(a); //答案是 false,NaN 不等于任何东西,包括他自己

var a = undefined == underfined;
  document.write(a); //答案是 true

var a = infinity == infinity; 
document.write(a); //答案是 true

非数 NaN 是不等于自己的,NaN 得不出数,但它是数字类型

>=,<=

!=是否不等于,非等
比较结果为 boolean 值:true 和 false

逻辑运算符:“&&”,“||”,“!“运算结果为真实的值

“&&”与运算符

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

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

如果第一位 1 为真,结果就为第二位的值 2

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

如果 1 为真,结果就为 4

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

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

 var a =1 + 1 && 11;
document.write(a); //答案 0

如果是三个或多个表达式,会先看第一个表达式是否为真,如果为真,就看第二个表达式,如果第二个也为真,就看第三个表达式(如果为真就往后看,一旦遇到假就返回到假的值),如果第三个是最后一个表达式,那就直接返回第三个的结果,如果第一个是假,就返回第一个值,当是真的时候就往后走,一旦遇到假,就返回
&&与运算符是有中断作用的,当短路语句使用(如果。。那么。。) 例 var data = …; //执行一个语句,会用到 data
data&&执行一个语句全用到 data
例 data && function(data);

&与运算

var num = 1 & 2;
document.write(num); //答案 0 

var num = 1 & 1;
document.write(num); //答案 1

 var num = 1 & 3;
  document.write(num); //答案 1

运算规则:转化成二进制数,上下一与,不同为 0,相同为 1

“||”或运算符

 var num = 1 || 3; 
document.write(num);//答案 1 

 var num = 0 || 3; 
document.write(num)//答案 3 

var num = 0 || false;
document.write(num) //答案是 false

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

“!“非运算符,否的意思。

先转成布尔值,再取反

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,NaN,
“”(空串), 0, false

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值