js中的三种逻辑运算符

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        //   js中的三种逻辑运算符
        //&&与   ||或   !非


        //取反  !  

        //对布尔值取反
        var a = true;
        !a;
        console.log(a); //true

        a = !a;
        console.log(a); //false

        a = true;
        a = !!a;
        console.log(a); //对true两次取反不变

        //对非布尔值运算取反,先转化布尔值然后取反
        var b = 666;
        b = !b; //先将Number转换成Boolean值,然后取反
        console.log(b); //false返回
        console.log(typeof b); //Boolean

        b = 0;
        b = !b;
        console.log(b); //true
        console.log(typeof b);

        b = 'liuyun';
        b = !!b; //将任意一个非布尔值取反两次来转换成布尔值
        console.log(b); //true
        console.log(typeof b); //Boolean

        //&& 与
        //可以对符号两边的值进行运算并返回结果
        var result = true && false;
        console.log(result); //false  有一边是false则为false

        result = true && true;
        console.log(result); //true

        result = false && false;
        console.log(result); //false
        //&& 只要有一个是被判断为false则停止判断后续代码
        // true && alert('good');//执行警示框
        false && alert('dog'); //不执行警示框


        //|| 或运算
        //只要有一个true则返回true   两个false则为false
        result = true || true; //true
        result = false || true; //true
        result = false || false; //false
        console.log(result);

        //如果第一个值为true则不会执行后续代码
        // false || alert(123); //弹出
        // true || alert(123); //不弹出

        //对于非布尔值进行与或运算时,则会将其转换为布尔值,然后进行运算 返回原值
        var result = 1 && 2; //2
        result = 2 && 1; //1 true && true 返回后面一个
        result = 0 && 1; //0  false && true  返回false
        result = 1 && 0; //0  false && true  返回false
        result = NaN && 66; //返回NaN
        result = 66 && NaN; //返回NaN
        result = 0 && 0; //0
        result = 0 && NaN; //0   false && false 返回第一个false
        result = NaN && 0; //NaN   false && false 返回第一个false
        result = null && 66; //null
        result = undefined && 66; //undefined
        console.log(result);
        //总结:第一个值为true 则看第二个值,无论真假都返回第二个值
        //      第一个值为false 则不会继续看第二个值,直接返回第一个值

        result = true || true; //true
        result = false || true //true
        result = false || false //false
        result = 1 || 6; //1
        result = 0 || 666; //6
        result = NaN || null //null
        console.log(result);
        //总结: 若第一个为真  则直接返回第一个值
        //       第一个值为假,则继续执行下一个值,直接返回下一个值
    </script>
</body>

</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值