javascript语句中的&&与||符号

[Toc]

&&符号

        let a = true && 5
        console.log(a) // 5
        let b = false && 6
        console.log(b) // false
        let c = 1 && 7
        console.log(c) // 7
        let d = 0 && 8
        console.log(d) // 0
  • 如上所示,以statement1 && statement2为例
    • statement1的布尔值为true时,返回statement2的值
    • statement1的布尔值为false时,返回statement1的值

&&符号并不是简单的return一个值

        function fn() {
            let a = 1 && console.log('aaaaaa')
            console.log('bbbbbb')
        }

        fn() // 'aaaaaa'  // 'bbbbbb'
  • 可以看到执行函数第一条语句后,第二条语句依然执行。因此&&并不是简单的作判断后return一个值。它更类似于IIFE。
        function fn() {
            let a = (function () {
                if (1) {
                    return console.log('aaaaaa')
                }
            })()
            console.log('bbbbbb')
        }
        fn() // 'aaaaaa'  // 'bbbbbb'

||符号

        let a = true || 5
        console.log(a) // true
        let b = false || 6
        console.log(b) // 6
  • 如上所示,以代码statement1 ||statement2为例
    • 如果statement1的布尔值为true,那么返回statement1的值
    • 如果statement1的布尔值为false,那么返回statement2的值

多个&&符号连接的语句

true&&console.log('aaaa')&&console.log('bbbb') // 'aaaa'
        function fn(){
            console.log('aaaa')
            return true
        }
        true&&fn()&&console.log('bbbb') // 'aaaa' 'bbbb'
  • statement1 && statement2 && statement3为例:
    • statement1的布尔值为true时,statement2被返回(如果statement2是一条语句的话,它会被执行)
    • statement2返回值的布尔值进行判断,为true时返回statement3,为false时结束语句

多个||符号连接的语句

true||console.log('aaaa')||console.log('bbbb')  // 返回true值,不执行后面的语句
false||console.log('cccc')||console.log('dddd') // 'cccc' 'dddd'
        function fn1() {
            console.log('aaa')
        }

        function fn2() {
            console.log('bbb')
        }

        function fn3() {
            console.log('ccc')
        }
        fn1()||fn2()||fn3() // 'aaa' 'bbb' 'ccc'
  • statement1||statement2||statement3为例:
    • statement1的布尔值为false时,才能返回后面的值或语句,对statement2语句进行执行,并判断它的返回值
      • 如果statement2语句返回值的布尔值为true,那么停止执行剩下的语句
      • 如果statement2语句返回值的布尔值为false,那么继续执行下一条语句
    • statement1的布尔值为true时,返回true,并停止执行判断后面的语句

10.18

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。