逻辑与和逻辑或?

274 阅读1分钟

逻辑与(并且) &&

    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