• 运算符与逻辑分支


    2.运算符与逻辑分支

    持续更新中…

    运算符

    1.进制转换

    .toString() 10进制转换为其他进制

    parseInt() 其他进制转换为10进制

    进制:
    二进制: 0, 1 (0~1)
    八进制: 0, 1, 2, 3, 4, 5, 6, 7 (0~7)
    十进制: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 (0~9)
    十六进制: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (0~15)

      // .toString() 10进制转换为其他进制
            // parseInt() 其他进制转换为10进制
            // 1100
            var num = 1100;
            var res = parseInt(num, 2);
            console.log(res);//12
            var num2 = 10111;
            var res1 = parseInt(num2, 2);//其中的2 代表这是二进制
            console.log(res1); //23
            // 扩展练习
            // 1. 将这些二进制1100 , 10111转成八进制、十进制、十六进制
            console.log(parseInt(1100, 2));//转换为10进制
            console.log(parseInt(1100, 2).toString(8));//8进制,先转为10进制,再用10进制的数转换为8进制
            console.log(parseInt(1100, 2).toString(16));//16进制
            console.log(parseInt(10111, 2));//转换为10进制
            console.log(parseInt(10111, 2).toString(8));//8进制,toString()括号里面跟的数字 ,就是进制,比如是8,就是8进制,是16就是16进制
            console.log(parseInt(10111, 2).toString(16));//16进制
            // 2. 将下列10进制数转成二进制
            //      193 ,   49 ,   81 ,  35
            var a = 193;
            var b = 49;
            var c = 81;
            var d = 35;
            console.log(a.toString(2));
            console.log(b.toString(2));
            console.log(c.toString(2));
            console.log(d.toString(2));
            // 3. 将下列二进制数转成十进制数
            // 100001001
            // 11001101
            console.log(parseInt(100001001, 2));
            console.log(parseInt(11001101, 2));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    2.数学运算符

    1.+

    只有符号两边都是数字的时候才会进行加法运算
    只要符号任意一边是字符串类型,就会进行字符串拼接

    2.-

    会执行减法运算
    会自动把两边都转换成数字进行运算

    3.*

    会执行乘法运算
    会自动把两边都转换成数字进行运算

    4./

    会执行除法运算
    会自动把两边都转换成数字进行运算

    5.%

    会执行取余运算
    会自动把两边都转换成数字进行运算

    % 取值范围

    Math,random()生成0-1之间的值,包含0 不包含1

       // % 5 的取值范围是0~4
            // % 10 的取值范围是0~9
            // % 100 的取值范围是0~99
            console.log(parseInt(Math.random() * 10) % 5);
    
    • 1
    • 2
    • 3
    • 4
    3.赋值运算符

    1.=

    就是把=右边的赋值给等号左边的变量名

    var num =100
    就是把100赋值给num变量
    那么num变量的值就是100
    
    • 1
    • 2
    • 3

    2.+=

    var a =10;
    a+=10;
    console.log(a);//=20
    a+=10等价于a=a+10
    
    • 1
    • 2
    • 3
    • 4

    3.-=

    var a= 10;
    a-=10;
    console.log(a);//=0
    a-=10等价于a=a-10
    
    • 1
    • 2
    • 3
    • 4

    4.*=

    var a=10;
    a*=10;
    console.log(a);//=100
    a*=10等价于a=a*10
    
    • 1
    • 2
    • 3
    • 4

    5./=

    var a=10;
    a/=10;
    console.log(a);//=1
    a/=10等价于a=a/10
    
    • 1
    • 2
    • 3
    • 4

    6.%=

    var a=10;
    a%=10;
    console.log(a);//=0
    a%=10等价于a=a%10
    
    • 1
    • 2
    • 3
    • 4
    4.逻辑运算符
    1. && 与(需要满足两个条件) 短路运算符

      • && 我只找假的,找到假的,就不往后面执行了
       // 2.&& 与  短路运算
              // && 我只找假的,找到假的,就不往后面执行了
              true && false && num;
              // 代码执行,因为&&看到了false 就不会执行后面的num了,num就不会报错
              console.log("1111");
      
      • 1
      • 2
      • 3
      • 4
      • 5
    2. || 或(满足一个条件即可) 短路运算符

      • || 或 只找"真",找到真的就不往后面执行

      • console.log("你好美");
                // 上面和下面两句话都执行,因为|| 找到true 就不看后面的代码了
                true || num;
                console.log("你好帅");
        
        • 1
        • 2
        • 3
        • 4
    3. ! 取反

           console.log(!true);//false
      
      • 1
      		console.log(true && true);//true
      		console.log(true && false);//false
              console.log(true || true);//true
       		console.log(true || false);//false
      		 console.log(false || false);//false
              console.log(!true);//false
      
      		 var num1 = 1 && 2;//0和NaN为false,非0为true
              var num2 = true || false;
              var res = num1 * num2 + 3;
              document.write(res)
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
    5.关系运算符

    >, < ,>= ,<=, ==, =, !, !=

    看到NaN参与比较,就是false

    比较运算符的规则(牢记)

    1.数值与数值比较,直接比较大小

    2.数值与字符串比较,字符串转换成数字,再比较大小

    3.字符与字符比较,把字符转换成ASCII码,再比较大小

    ASCII码 记住这些经典的

    a-z 97-122

    A-Z 65-90

    0-9 48-57

      //           65 >66
            console.log("A" > "B");//false
            console.log("你好" > 2);//false
            console.log("3" > 2);//true
    
            //  9是 57 ,11是 49 49 ,比较第一个数,所以是9大
            console.log("9" > "11");//true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    6.一元运算符

    a++(先运算,后赋值) ++a (先赋值,后运算)

    只能操作一个值的运算符叫做一元运算符
    var a = ++b; // 先运算,后赋值
    var a = b++; // 先取值,后运算

    ​ 其他类型应用一元运算符的规则
    ​ var b = ‘89’;
    ​ b++; //90,数值字符自动转换成数值

    ​ var b= ‘ab’;
    ​ b++; //NaN,字符串包含非数值转成NaN

    ​ var b = false;
    ​ b++; //1,false转成数值0,累加就是1

    ​ var b = 2.3;
    ​ b++; //3.3,直接加1

      var a = 10;
            var res = a++ + a++ + a++;
            console.log(a);//13
            console.log(res);//33
            var b = 10;
            var res1 = b++ + ++b + b++ + ++b;
            console.log(b);//14
            console.log(res1);//48
            var i = 12;
            var sum = i++ + ++i + ++i * 2 + i-- + i--;
            console.log(sum + " " + i);// 85 13
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    7.三目运算符

    语法:

    ​ 表达式?条件1 : 条件2;

    ​ 表达式满足条件就走条件1,否则就走条件2

      var num = 10;
            var res = num > 5 ? "大于5" : "小于5";
            console.log(res);//大于5
    
    • 1
    • 2
    • 3
    8.位移运算符

    (>>右位移)(<<左位移)

    进制的左移相当于乘以2,右移相当于除以2

    2>>2 等于0

    2<<2 等于8

    2 2 把第一个2,转换为2进制,再向左边或者右边移动n位,n:就是第二个数

    9.= , == ,===代表的意思
    1. = 赋值 把右边的值给到左边
    2. == 比较 只比较值,类型会自动进行转换
      1. === 值和类型,都要相同,才会全等于(恒等于)

    逻辑分支

    1.单分支
     单分支
                语法:
                    if(表达式){
                        逻辑代码
                    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
     var a = 10;
            console.log("11111");
            //    10==20,不满足条件,所以不执行里面的代码
            if (a == 20) {
                console.log("条件满足,我被执行,条件不满足,我就不被执行");
            }
            console.log("222222");
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    2.双分支
     表达式1 算术表达式 逻辑表达式 关系表达式 常量....
         语法:
         if(表达式1){
          		逻辑代码1
         }else{
         		逻辑代码2
          }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
     //    双分支
            var str = prompt("请输入开和关:");
            if (str === "开") {
                console.log("电灯打开了");
            } else {
                console.log("电灯被关闭了,没有被打开");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    3.多分支

    多分支的语法:

                if(表达式1){
                    逻辑代码
                }else if(){
                    逻辑代码
                }else if(){
                    逻辑代码
                }else{
                    逻辑代码
                }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
     // 一周7天
            var day = prompt("请输入星期几的数字?");
            if (day == 1) {
                console.log("星期1");
            } else if (day == 2) {
                console.log("星期2");
            } else if (day == 3) {
                console.log("星期3");
            } else if (day == 4) {
                console.log("星期4");
            } else if (day == 5) {
                console.log("星期5");
            } else if (day == 6) {
                console.log("星期6");
            } else {
                console.log("星期天");
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    4.Switch

    1.防止穿透 break
    2.恒等于(===),值和类型要一致

               语法:
                Switch(){
                    case 常量1:
                        逻辑代码1
                        break;
                    case 常量2:
                        逻辑代码2
                        break;
                    default:
                        逻辑代码3
                        break;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
            var grade = (prompt("请输入分数"));
            var a = parseInt(grade / 10);
            switch (a) {
                case 10:
                case 9:
                case 8:
                    console.log("A");
                    break;
                case 7:
                    console.log("B");
                    break;
                case 6:
                    console.log("C");
                    break;
    
                default:
                    console.log("D");
                    break;
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    Spring中的BeanFactory和ApplicationContext的区别
    十年磨一剑,剑指IT技术之巅,WOT 全球技术创新大会 2022盛大开启
    02_SpringSecurity学习之多种配置共存
    mybatis-plus常用注解@TableId、@TableField
    Jmeter进阶使用指南-使用断言
    2022高教杯思路合集!!全国大学生数学建模竞赛
    搞一个自己用的node-cli
    奥威BI做数据可视化大屏报表,不踩坑更省心
    【PAT(甲级)】1059 Prime Factors
    Springboot整合Mybatis
  • 原文地址:https://blog.csdn.net/qq_46372132/article/details/132699525