# 运算操作符

运算操作符

"+" "-" "*" "/" "%"摩尔(取余结果) "="赋值 "()"

优先级"="最弱 "()"优先级最高

运算操作符

"++" 自加一

"--" 自减一

"+=" "-=" "/=" "*=" "%="

Nan的意思就是 not a number

# ++a和a++

a++自加一, ++a先加后a

var a = 1;
    document.write(a ++);       
    //打印1   后面如果再运行a为 2
    
    document.write(++ a);       
    ///打印2,直接加了 1
    
    //++a 如果和a++在一块 先算++a
var a = 1;
    ++a;
    document.write(a);    //2
1
2
3
4
5
6
7
8
9
10
11
var a = 10;
    document.write(a ++);  
    //打印出的结果是10(先打印 后加一)
    document.write(a);
    //打印出的结果是11
1
2
3
4
5
var a = 10;
var b = ++a - 1 + a++;
    document.write(b+ " " + a);    
    //++a=11 -1 +10 +1            b=21   a=12
    //赋值的顺序自右向左 计算的顺序自左向右
1
2
3
4
5
var a = 10;
    a = a + 10;
    a += 10;       
    //复杂写法就是a = a + 10;   a = 20

var a = 10;
    a += 10 + 1;   
    //输出a=21   a=a+10+1;

var a = 10;
    a *= 2 ;       //a= a*2

var a = 10;
    a /= 2         //a=a/2
     
var a = 10;
    a % = 2;       
     //取余 余数赋给自身 10%2=5  a = 0;

var a = 3;
    a % = 4;       
     //取余 余数赋给自身  a = 3;(除不开就叫做商0余3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 总结

var a = (10 * 3 - 4 / 2 + 1) % 2;   //29 % 2 = 1,a = 1
    b = 3;
    b %= a + 3;                     //3 % = 4
        document.write(a++);    //a=1 之后调用再加加
        document.write("<br>");
        document.write(--b);    //--b 打印2
1
2
3
4
5
6

# 例子:

将两个变量值调换顺序

var a = 123;
var b = 234; 
var c = a;      //先运算后面 123=a=c
a = b;          //234=a
b = c;          //123=b
document.write(a,b);
1
2
3
4
5
6

另一种写法

var a = 123;
var b = 234;
a = a + b;      //a等于两个的和
b = a - b;      //b等于两个的和减b
a = a - b;      //a等于两个的和减现在的b
1
2
3
4
5

# 比较运算符

比较运算符

">" "<" "==" 是否等于 ">=" "<=" "!=是否不等于" 字符串通过比较运算符比较的是Ask码

所有的比较运算符的结果都为布尔值(ture或false)

var a = NaN == NaN;      //false(特例)
1
var a = 1 + 'a' + (1 + 1);   
        document.write(a);
//从左向右计算 1a2
1
2
3

提示

任何数据类型和字符串相加都等于字符串

# 逻辑运算符

逻辑运算符

"&&" "||" "!" (与或非)

# 规律:

先看第一表达式转换为布尔值得结果,如果结果为真,那么它会看第二个表达式转换为布尔值的结果,然后如果只有两个表达式的话,只能看到第二个表达式,就可以返回第二个表达式的值

&& 与

第一个值为真,第二个值也为真,返回第二个值。

如果有三个表达式,则从左往右看,都为真则返回最后一个值,中间有一个为假,则返回假的值.或者第一个为假,直接返回第一个.

碰见假就返回

|| 或

如果第一个为真 则返回第一个 后面的不用看 如果第一个为假 后面的也为假或者真 则返回第二个

碰见真就返回

var a = 1 && 2;         
//第一个值为真 第二个值也为真 返回第二个值。
    document.write(a);       //返回2

2 > 1 && document.write('我很帅');    //形似if语句
1
2
3
4
5

! 非

先把值转换为布尔值再取反 123是真取反则是假

undefined,null,NaN,"",0,false都是false

其余的之间比较都是true

var a = !123;
document.write(a);   //false
1
2