1、 逻辑运算符( &&,||,! )
两边都先转换为boolean,再判断,返回的是 boolean值
<script>
// &&与 只有两个结果为true,结果才为true
console.log(3 > 2 && 4 > 3);
console.log(3 > 2 && 4 < 3); true && false
console.log(3 < 2 && 4 > 3); false && true
// ||或 任意一边为true,结果为true
console.log(3 > 2 || 4 < 3); true || false
console.log(3 < 2 || 4 > 3); false || true
// ! 取反
console.log(!(3>4))//!false
</script>
1-1 逻辑 与 运算 (&&)
两边都为true,结果才为true 遇到false的情况,直接返回
如果前面类型转换后为true,则返回最后一个
console.log(77&&33);//返回33
console.log(true&&9&&"您好");//返回“您好”
console.log(80 && true );//返回true
如果前面有一个转换后不是true,则返回第一个转换为false的值
console.log(“”&&true);//返回空格
console.log(44&&0&&"hello");//返回0
console.log(55&&false&&0);//返回false
console.log(0&&null&&55);//返回0
console.log(NaN && 16 && "");//返回NaN
console.log("" && NaN && 12);//返回“”空字符串
console.log("abc" && 10); //输出10
console.log( 0 && "abc"); //输出0
console.log( "1"&& "abc");// abc
1-2 逻辑 或 运算 (||)
只要一个条件为true,则返回true;都为false,则返回false
有一个为true,则返回true;都为false,一直走到最后一个,打印最后一个
console.log(33<22||33>11);//返回true
console.log(undefined || null || 0);//返回0
console.log(undefined || 88 || 99 );//返回88
console.lof(undefined || 33>10 || false);//返回true
console.log(null || undefined || NaN);//返回NaN
console.log(NaN || undefined) ;//返回undefined
console.log("hellow" || NaN);//返回hellow
var b = 0 ||"abc"; //abc
var c = "abc" || 1; //abc
var d = 0 || NaN; //NaN
console.log(b);
console.log(c);
console.log(d);
1-3 逻辑 非 运算 ( !)
返回值一定是boolean值 结果取反
console.log(!false);//true
console.log(!88);//false
console.log(!NaN);//true
console.log(!!NaN);//false
console.log(!!"hell");//true
2、 比较运算符( >,<,==,>=,<=,!= )
两边都先转换为number,再比较,返回的是 boolean
var a = true var b = 1; console.log(a==b) // true console.log(a=="1") //true 两边都先转为number
注意: null == undefined
null 和 undefined 不能转化为其他值** Number(""),Number(" "),Number(null) => 输出 0**
// Number(""),Number(" "),Number(null) => 输出 0
console.log(false == ""); // true
console.log(true == 1); // true
console.log(null == undefined); // true
console.log(undefined == false); // false
console.log(1 == "1"); // true
console.log(null == false); // false
/* 1.只有有一边为 boolean 先两边转为number
2.一边为string,一边为number,先将两遍转为number
// 两边都先转为number
3. null == undefined
4. null 和 undefined 不能转化为其他值
*/
3、自增、自减运算符 (“++”、“—”)
自增
++放前面先自增,后运算
++放后面先运算,再自增
var a = 10;
var c = 20;
b =++a + 2;
d = c++ +3;
console.log(b); //12
console.log(a); //11
console.log(d); //23
console.log(c); //21
var a = 10;
a++; //a=11
b = ++a + 2; //a=12 b = 14
c = ++b + a++ + 4; // b =15 c= 31 a =13
console.log(a); // 13
console.log(b); // 15
console.log(c);
自减
— 放前面先自减,后运算
— 放后面先运算,再自减
var a = 10;
a--; //a = a-1;
console.log(a);
var a = 20;
b = --a+1; //a = 19 b=20;
console.log(a);
console.log(b);
4、三目运算
<script>
var a=(5>4)?"5大于4":"5小于4"
</script>
5、赋值运算
<script>
// +=,-=;
var a = 2;
// a=a+4;
a+=4;
var b = 4;
b-=4; //b=b-4;
console.log(a); //6;
console.log(b); //0
</script>