&&运算规律
&& 运算符的 运算顾虑
1;从左往右依次运算,第一个是true 进行下一个;遇到第一个false 时候;返回false
如果一直都没有false; 最后一个是表达式;返回 表达式运算结果;
左后一个如果是js 数据直接返回数据
var res = 2>1 && null==null && 2-1
console.log(res)
res2 = []==='' && 3*1 && 'a'>'b'
res2 = []==='' && 3 && 'a'>'b'
res2 = []==='' && 3 && 'a'>'b'
var a = 20;
var res = (a % 4 == 0 && a % 100 != 0)&& a % 400 == 0;
res = (0 == 0 && 20 % 100 != 0)&& 20 % 400 == 0;
res = (true && 20 % 100 != 0)&& 20 % 400 == 0;
res = (true && 20 != 0)&& 20 % 400 == 0;
res = (true && true)&& 20 % 400 == 0;
res = true && 20 % 400 == 0;
res = true && 20 == 0;
res = true && false;
res = false
/*
||运算符的 运算顾虑
1;从左往右依次运算,第一个是false 进行下一个;遇到第一个true 时候;返回false
如果一直都没有true; 最后一个是表达式;返回 表达式运算结果;
后后一个如果是 数据直接返回数据
*/
var a = 20
var res = (a % 4 == 0 || a % 100 != 0) || a % 400 == 0;
res = (20 % 4 == 0 || 20 % 100 != 0) || 20 % 400 == 0;
res = (true == 0 || 20 % 100 != 0) || 20 % 400 == 0;
res = (true || 20% 100 != 0) || 20 % 400 == 0;
res = (true) || 20 % 400 == 0;
res = true || 20 % 400 == 0;
res = true
// var res = undefined || null // null
// var res = null || false // false
// var res = false || '' // ''
// var res = '' || 0 // 0
var res = undefined || null || false || '' || 0;
res = null || false || '' || 0 ;
res = false || '' || 0 ;
res = '' || 0 ;
res = 0
! 单目运算符 只有2个结果 参考其他类型转化布尔类型
除了null ,0,'',undefined,NaN
var res = !'' // !false ---> true
var res = !''+1 //2
var res = 1+2+!0
res = 1+2+!false
res = 1+2+true
res = 4
var res = !1
res = !true
res = false
var res2 = !'ddd'
res = !true
res = false
var res3 = !null
res = !false
res = true
var res4 = !undefined
res = !false
res = true
var res5 = !''
res = !false
res = true
var res6 = !NaN
res = !false
res = true
var res7 = 2-!'ddd'
res7 = 2-!true
res7 = 2-false
res7 = 2
var res9 =1+!''+3-1+''
res9 = 1+!false+3-1+''
res9 = 1+true+3-1+''
res9 = 1+1+3-1+''
res9 = '4'
var res8 = {}>[] && 2>1 || ‘dd’>‘aa’ || !’’
‘[ObjectObject]’>’’ 2个字符串相比 先对比第一个数 ''看做0 任何非空字符串都比 ''大
res8 = '[ObjectObject]'>'' && 2>1 || 'dd'>'aa' || !''
res8 = true && 2>1 || 'dd'>'aa' || !''
res8 = true && true || 'dd'>'aa' || !''
res8 = true || 'dd'>'aa' || !''
res8 = true
var res = "aa" > "" && !(1 < 2 || (1 - 1 && [] > {})) && "" == [];
res = true && !(1 < 2 || (1 - 1 && [] > {})) && "" == [];
res = true && !(1 < 2|| (0 && [] > {})) && "" == [];
res = true && !(1 < 2|| (0 && false)) && "" == [];
res = true && !(1 < 2|| false) && "" == [];
res = true && !(true|| false) && "" == [];
res = true && !true && "" == [];
res = true && false && "" == [];
res = false