JS — 08 运算符2

比较运算符> < >= <= == != === !==

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <title>比较运算符</title>
</head>
<body>
    <script>
        /*
        *   比较运算符 => 结果为Boolean
        *   > < >= <= == != === !==
        *   == 等于 => 只要求值相同
        *   != 不等于
        *   === 全等 => 要求数据类型和值都一样
        *   !== 不全等
        *   没有特殊要求的话,在判断是否相等时都使用全等 ===
        * */
        let a = 10;
        let b = 20;
        console.log( a < b );//true
        console.log( a <= b );//true
        console.log( a > b );//false
        console.log( a >= b );//false
        console.log( a == b );//false
        console.log( a != b );//true

        let c = "10";
        let d = 10;
        console.log( c == d );//true
        console.log( c === d );//false
        console.log( c !== d );//true
    </script>
</body>
</html>

逻辑运算符 &&与 ||非 !取反 类型转换 => 所有数据类型转布尔值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <title>逻辑运算符</title>
</head>
<body>
    <script>
        /****************************************************/
        /*
        *   逻辑运算符
        *   && => 与 => 两边都为真,才是真,否则都为假 => 找false
        *   || => 或 => 两边都为假,才是假,否则都为真 => 找true
        *   !  => 非 => 取反,真变假,假变真
        *   逻辑运算符会按照两个数据对应的布尔值进行运算
        *   JavaScript 每个数据,在做真假判断的时候都有自己对应的布尔值
        *   每种数据都有自己对应的布尔值
        *   */

        //布尔值的逻辑运算 => && => 两边都为真,才是真,否则都为假
        let x = true && false;
        console.log( x );//false
        let y = false && false;
        console.log( y );//false
        let z = true && true;//true
        console.log( z );

        //布尔值的逻辑运算 => || => 两边都为假,才是假,否则都为真
        let a = false || true;
        console.log( a );//true
        let b = false || false;
        console.log( b );//false

        //布尔值的逻辑运算 => ! => 取反,真变假,假变真
        let i = ! true;
        console.log(i);//false
        let j = !false;
        console.log( j );//true
        let k = !!false;
        console.log( k );//false

        let aa = 1 && 2;
        console.log( aa );//2

        /****************************************************/
        /*
        *   数据类型转换 => 所有数据类型转布尔值
        *       以下六个数据转布尔值为false ,其余都是true
        *       false
        *       ""
        *       0
        *       undefined
        *       null
        *       NaN
        *  */
        console.log( Boolean("0") );//true
        console.log( Boolean(" ") );//true
        console.log( Boolean("false") );//true
        console.log( Boolean("null") );//true
        console.log( Boolean(2 - 2) );//false
    </script>
</body>
</html>

逻辑运算符复习 + 三目运算符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="keywords" content="">
    <meta name="description" content="">
    <title></title>
</head>
<body>
    <script>
        /*
        *   逻辑运算符 => 多个条件之间的判断
        *       判断条件A
        *       判断条件B
        *
        *       同时都满足:
        *           A为真,B也为真
        *           A && B 与运算符 => A为真,返回B => A为假,返回A (遇到假的就返回)
        *           A || B 或运算符 => A为真,返回A => A为假,返回B (遇到真的就返回)
        *           !运算符 => 表达式前面加上一个! => 逻辑非 => 强行将表达式转换为布尔类型,然后取反 => 返回的一定是布尔类型
        *
        *        一个值到底是真还是假?
        *           数据 进行识别转换 =>转成布尔值类型
        *           六大假值 => "" 0 false undefined null NaN
        *
        *       与和或结合在一起
        *           优先级 => && > ||
        *
        *       开发注意的细节: 建议不要写很复杂的与或运算
        *           1 || 2 && "" => ( 1 || 2 ) && ""
        *
        *       !!两个感叹号连在一起
        *           取巧写法: 强行将一个值转为布尔类型
        *
        * */
        let a = true;
        let b = true;
        console.log( a && b );//true
        console.log( 1 || 2 && "");//1 运算顺序 => 2 && ""  => 1 || ""  => 1
        console.log( !1 );//false
        console.log( !"" );//true

        function foo(){
            return !1;//取巧,强行转布尔类型
        }

        /**************************************************/
        /*
        *   三目运算符 => 返回的值要么是b,要么是c
        *       假设:
        *           性别男 => true
        *           性别女 => false
        *
        *   二选一用三目运算符
        *       格式 => a ? b : c
        *       a => 条件(true / false)
        *       b => 选择1(表达式)
        *       c => 选择2(表达式)
        *       如果a为真选b,a为假选c
        * */
        let xingbie = "";
        let type = xingbie ? "男厕所" : "女厕所";
        console.log( "我去" + type );//女厕所

        /**************************************************/
        //面试题
        let aa = 3;
        let bb = 4;
        console.log( ( aa > bb) ? ( aa && bb ? aa : bb) : aa || bb ? bb : aa );//4

        /**************************************************/
        //优先级 => ! > && > || > 三目运算符
        console.log( 3 || 0 ? 1 : false );//1
        console.log( ( 3 || 0 ) ? 1 : false );//1
        console.log( 3 || ( 0 ? 1 : false) );//3

        /**************************************************/
        // A ? A : B; <=> A || B;
        // A ? B : A; <=> A && B;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值