逻辑与(并且) &&
var num = 10
var num = 2
num 必须大于1 并且小于10 才成立
if (num > 1 && num < 5) {
console.log('成立')
}

- && 只要有一个小条件不成立 整体不成立 false
var str = '1' // isNaN(Number('1')) isNaN(1) // false
if (isNaN(str) && typeof str === 'number'){
console.log('str')
}

逻辑或(或者)|| 只要其中的一个条件成立就可以
num = 1或者num = 3
//逻辑或(或者)||,只要其中的一个条件成立就可以
if (num === 1 || num === 2 || num === 3) {
console.log('或者')
}
//输出或者

取值 || 两边值
简单记 只看左边值就可以了
如果左边值 是true 就返回左边的值
如果左边值 是false 就返回右边值
console.log(0 || 1) // 1
console.log(2 || 3) // 2
&& 只看左边值就可以了 true && true
如果左边值 是true 就返回右边的值
如果左边值 是false 就返回左边的值
console.log(0 && 2)
console.log(4 && 2)
console.log('' && 2)
console.log(NaN && 2)

&& 优先级 高于 ||
1.
console.log(1 && 3 || 0 && 8 || '123') //3
3 || 0 && 8 || '123'
3 || 0 || '123'
3 || '123'
//输出3
2. console.log( 0 && 2 || '')
// 0 || ''
//输出''
// 小括号可以改变优先级
console.log(1 && (0 || 10) || 8)
// (1 && 10)||8 => 10||8=> 10
console.log(1 && 0 || 10 || 8)
//输出10
var num = undefined || 10
console.log(10)
//输出10