运算符:
算术运算符:
(1)+:数学运算、字符串连接(注意:任何数据类型加字符串都等于字符串)
<script type="text/javascript">
var a = 1 + 1 + "a" + 1 + 1;
console.log(a); //2a11
var b = 1 + 1 + "a" + "(1+2)";
console.log(b); //2a(1+2)
</script>
(2)-(减)
(3)*(乘)
(4)/(除)
<script type="text/javascript">
var c = 1 / 0;
console.log(c); //Infinity 无穷
var d = -1 / 0;
console.log(d); //-Infinity
var e = 0 / 0;
console.log(e); //NaN Not A Number非数
</script>
(5)% (摩尔:取余)
(6)=(优先级最弱)
(7)()(优先级最高)
(8)++、--
<script type="text/javascript">
//++放后面,执行语句后++ ++放前面,先++后执行语句
var f = 10;
console.log(f ++); //10
console.log(f); //11
var g = 10;
var h = ++g -1 + g++;
console.log(h,g); //21,12
</script>
赋值运算符
(9)+=、-=
<script type="text/javascript">
var i = 10;
i += 10;
console.log(i); //20;
var j = 10;
j += 10 + 1; //相当于 j = j + 10 + 1
console.log(j); //21
</script>
(10)*=、/=
<script type="text/javascript">
var k = 10;
k *= 2;
console.log(k); //20
k /= 2; // 20/2=10
console.log(k); //10
</script>
(11)%=
<script type="text/javascript">
var l = 10;
l %= 2;
console.log(l); //0
var m = 0;
m %= 2;
console.log(m); //0
</script>
比较运算符:
(12)>、<
<script type="text/javascript">
//任何类型都可以比较大小
var n = 1 > 2;
console.log(n); //false
var o = "a" > "b";
console.log(o); //false
</script>
(13)==
<script type="text/javascript">
var p = 1 == 1;
console.log(p); //true
var q = 1 == 2;
console.log(q); //false
var r = undefined == undefined;
console.log(r); //true
var s = Infinity == Infinity;
console.log(s); //true
var t = NaN == NaN;
console.log(t); //false
</script>
(14)===(全等,值和类型都相等)
(15)>=、<=、!=
逻辑运算符(难点)
(16)&&(与)
<script type="text/javascript">
//与 运算符 && :
//注意:undefined、null、NaN、" "、0、false 转换布尔值都为 false
// 1.先看运算符前面表达式转换成布尔值是否为真,结果不为真,直接返回第一个表达式的值
var u = 0 && 2;
console.log(u); //0
// 2.先看运算符前面表达式转换成布尔值是否为真,结果为真,然后如果只有两个表达式,就可以返回第二个表达式的值了
var v = 1 && 2;
console.log(v); //2
// 3.多于两个表达式,遇到为布尔值为false的就返回
var w = 1 && false && 2;
console.log(w); //false
var x = 1 && 2 && null && false && undefined;
console.log(x); //null
//有中断作用
2 > 1 && console.log("你是猪!");
</script>
(17)||(与&&类似,遇到布尔值为真就返回。如果表达式布尔值全为false,返回最后一个表达式的值)
<script type="text/javascript">
//小应用:兼容
div.onclick = function(e){
var event = e || window.event;
// 非IE e IE e为空,用window.event
}
</script>
(18)!(非)
<script type="text/javascript">
//! 非:表达式转换为布尔值,然后取反
var y = !123;
console.log(y); //false
var z = !!"";
console.log(z); //false
</script>