zoukankan      html  css  js  c++  java
  • JS知识整理随笔(2) 逻辑操作符和算数操作符以及其它操作符

        var num1=10,num2="c",num3="5";
        console.log(num1*num2);
        console.log(num1*num3);//隐式类型转换

    递增和递减

    递增(递减同理)

    ++a与a++都是对a进行递增操作

    区别

    ++a先返回递增之后的a的值

    a++先返回a的原值,在返回递增之后的值

     var num1=10,num2=5,num3=++num1+num2; //++num1 num1=num1+1
        console.log(num1);
        console.log(num3);

     var num1=10,num2=5,num3=num1++-num2; 
        console.log(num1);
        console.log(num3);

      var x1=20,x2=30,x3=--x1+x2--;
        console.log(x1);
        console.log(x2);
        console.log(x3);// 19+30=49;

    a++ 的含义是先赋值后相加,如 b=a++; 先将a的值赋给b,然后a再加上1;++a的含义是先相加后赋值,如 b=++a 先将a加上1,然后再把加上1的a赋给b.
    int a=1;
    b=a++; ---> b=a ,b=1;a+1,a=2;
    b=++a;--->b=a+1,b=2; 此时的a已经是2

     

    赋值操作符

    简单赋值:=;

    复合赋值:+=  -=  *=  %=  /=

    比较操作符

    ==:值是否相等

    ===:比较值是否相等同时比较类型是否相等

    !=:不相等,比较值是否不相等

    !==:不相等,比较值得同时比较数据类型是否不相等

    返回值:boolean

    三元操作符

    语法

    条件 ? 执行代码1:执行代码2

    说明

    可代替简单的if语句,如果条件成立,执行代码1,否则执行代码2

        var soce=85;
        var result=(soce>=60)?"及格":"不及格"
        console.log(result);

    逻辑操作符

    • &&  与(只要一个条件不成立,返回false)
    • ||    或  (只要一个条件成立,返回true)
    • !     非

    逻辑与(并且)

    说明

    在有一个操作数不是布尔值得情况下,逻辑与操作就不一定返回值,它遵循规则

    • 如果第一个操作隐式类型装换后为true,则返回第二个操作数
    • 如果第一个操作数隐式类型转换后为false,则返回第一个操作数
    • 有一个是null则返回null
    • 有一个是NaN就返回NaN
    • 有一个是undefind就返回undefind
         var num1=10,
             num2=20,
             num3=30,
             str="hello",
             n=null,
             m,
             bool=true;
    
    //所有条件都为true才返回true  有一个false就返回false
    console.log(num1<num2 && num2<num3);//true true   /true
    console.log(num1<num2 && num2===num3)  //true  false  /false
    console.log(num2<num3 && num3>num1 && bool) //true true true /true
    
    //在操作数不是布尔值的情况
    
    //1、如果第一个操作数隐式类型装换后为true 则返回第二个操作数
    console.log(str && num3);  //所有字符串除了"" 转换为Boolean都是true  /30
    console.log(80 && 55)  //所有数字除0 转换为Boolean都是true  /55
    console.log("hello" && 65 && "abc") //true   true true  /abc
    
    
    //2、如果第一个操作数隐式类型装换后为false 则返回第一个操作数
    console.log(0 && 88) //false true  /0
    console.log("" && 0 && 30>20) //false false true  / ""
    
    
    //3、如果有一个操作是null 则返回null
    //4、如果有一个操作是NaN 则返回NaN
    //5、如果有一个操作是undefined   则返回undefined
    console.log(n && num3) //null  true    /null
    console.log(33*"abc" && 55)  //NaN  true   /NaN
    console.log(m && bool) //undefined  true   /undefined 

    逻辑或

    • 如果第一个操作数隐式类型转换后为true,则返回第一个操作数
    • 如果第一个操作数隐式类型转换后为false,则返回第二个操作数
    • 如果两个操作数是null则返回null
    • 如果两个操作数都是NaN、则返回NaN
    • 如果两个操作数都是undefined,则返回undefined
    //只要一个条件成立就返回true
    console.log(55>88  || 33<66) //false true /true
    console.log(55!="55" || 88==="88") //false (parseInt("55"))   false /false
    
    //在有一个操作数不是布尔值的情况下
    
    //1、如果第一个操作数隐式类型转换后为true 则返回第一操作数
    console.log("hello" || 0) //true    /hello
    console.log(99 || 0 || "abc") //true false true  //99
    
    
    //2、如果第一个操作数隐式类型转换后为false则返回第二个操作数
    console.log(0 || 99) //false true  /99

    逻辑非

    说明

    • 无论操作数是什么数据类型,逻辑非都会返回一个布尔值
    • ! !同时使用两个逻辑非操作符使   
      •   第一个逻辑非操作基于无论什么操作数都返回一个布尔值
      •        第二逻辑非则对该布尔值求反
  • 相关阅读:
    laravel实践2.引入bootstrap
    laravel实践3.laravel Mix使用
    利用nginx 反向代理解决跨域问题
    前端压缩图片记录一下
    蒲文强java第 七 次作业
    蒲文强java第六次作业
    192403蒲文强——面向对象第五次作业
    浅析学习关于《现代软件工程——构建之法》第一章的总结
    第四次作业----两人结对编程
    第四次博客作业-结对项目
  • 原文地址:https://www.cnblogs.com/zry2510/p/7093382.html
Copyright © 2011-2022 走看看