1. (1) 算术运算 + - * / % ++ --
(2) 关系运算 > < >= <= == === != !==
(3) 逻辑运算 && || !
(4) 位运算 & | ~ ^ << >> >>>
(5) 赋值运算 = += -= *= /= %=
(6) 字符连接运算 +
(7) 条件(三目)运算 ?:
(8) 特殊运算符 typeof instanceof void delete
2. 算术运算
减法:
var a = 20 - 5;
console.log(a); // 15
var b = "20"-"5"; // 20 - 5 = 15
console.log(b);
var c = "20a" - 5; // NaN - 5 = NaN
取余运算(结果的正负与第一个值的正负有关)
var i = -10%3;
console.log(i); // -1
++运算与--运算
var i = 10;
i++; // i = i+1; // 10+1=11
console.log(i);
var i = 10;
i--; // i=i-1; // 10-1=9
console.log(i);
var i = 10;
i -= 3; // i = i-3;
console.log(i);
var i = 1;
var j = i++; // 先把i值给j,i再做++
console.log(i); // 2
console.log(j); // 1
var i = 1;
var j = ++i; // i先做++,然后把值再给j
console.log(i); // 2
console.log(j); // 2
var a = 10,b=8,c=6;
var sum = a++ - c++ - b--;
// a++=10,a=11
// c++=6,c=7
// b--=8,b=7
// 10-6-8=-4
console.log(sum); // -4
console.log(a); // 11
console.log(b); // 7
console.log(c); // 7
3. 关系运算(判断数之间的大小,结果true,false)
console.log(3>10); // false
console.log("我是" > 10); // 无法比较 false
console.log("3a" > 10); // 无法比较 false
console.log("3" < 10); // 3 < 10 可以 true
console.log("34a" > "30a"); // true // 3 > 3 --> 4> 0 --> true
=== 值相同并且数据类型相同; !== 反过来的"==="
== 值相同; !=反过来的"=="
var num = 3;
var str = "3";
console.log(num == str); // true
console.log(num != str); // false
console.log(num === str); // false
console.log(num!== str); // true
4. 逻辑运算
&& 与(必须全对才是对 --> 只要有一个错就全错,后面不看了)
|| 或 (必须全错才是错 --> 只要有一个对就全对,后面不看了)
! 非 (反过来的结果)
没有比较就返回当前值,返回当前的值来代表对错
有7个是错(跟if里的一样) ! null === null ---> null(表示false) > true
console.log(!!"aaaa"); // !"aaaa"--> false !false-->true
var a = 10;
var b = 100;
var result = a > 12&&b < 120;
console.log(result); // false
var a2 = 10;
var b2 = 100;
var result2 = a2 > 12 || b2 < 120;
console.log(result2); // true
console.log(!result2); // false
逻辑短路问题(做一半)
var i = 10;
var j = 10;
var k = i-- < 0 && j++ > 0; // 已经判断出结果,后面不再计算
console.log(i); // 9
console.log(j); // 10
console.log(k); // false
var i = 10;
var j = 10;
var k = i-- > 0 || j++ > 0; // 已经判断出结果,后面不再计算
console.log(i); // 9
console.log(j); // 10
console.log(k); // true
5. 位运算 >>(减次方) <<(加次方)
结果是负次方是0
var a = 2 << 1;
// 2的1次方 <<加 1+1=2 --> 2的2次方=4
console.log(a); // 4
var b = 64 >> 1;
// 64 --> 2的6次方 --> 2的5次方 == 32
console.log(b);
6.赋值运算 = (赋值)
var score = 90;
var result = score == 100;
console.log(result); // false
var a = b = c = d = 10;
console.log(a,b,c,d); // 10,不推荐使用
简写性操作不能与多个声明一块使用,全写可以