运算符与逻辑分支

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));

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);

3.赋值运算符

1.=

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

var num =100
就是把100赋值给num变量
那么num变量的值就是100

2.+=

var a =10;
a+=10;
console.log(a);//=20
a+=10等价于a=a+10

3.-=

var a= 10;
a-=10;
console.log(a);//=0
a-=10等价于a=a-10

4.*=

var a=10;
a*=10;
console.log(a);//=100
a*=10等价于a=a*10

5./=

var a=10;
a/=10;
console.log(a);//=1
a/=10等价于a=a/10

6.%=

var a=10;
a%=10;
console.log(a);//=0
a%=10等价于a=a%10

4.逻辑运算符

  1. && 与(需要满足两个条件) 短路运算符

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

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

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

         console.log(!true);//false
    
    		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)
    

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

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

7.三目运算符

语法:

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

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

  var num = 10;
        var res = num > 5 ? "大于5" : "小于5";
        console.log(res);//大于5

8.位移运算符

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

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

2>>2 等于0

2<<2 等于8

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

9.= , == ,===代表的意思

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

逻辑分支

1.单分支

 单分支
            语法:
                if(表达式){
                    逻辑代码
                }
 var a = 10;
        console.log("11111");
        //    10==20,不满足条件,所以不执行里面的代码
        if (a == 20) {
            console.log("条件满足,我被执行,条件不满足,我就不被执行");
        }
        console.log("222222");

2.双分支

 表达式1 算术表达式 逻辑表达式 关系表达式 常量....
     语法:
     if(表达式1){
      		逻辑代码1
     }else{
     		逻辑代码2
      }
 //    双分支
        var str = prompt("请输入开和关:");
        if (str === "开") {
            console.log("电灯打开了");
        } else {
            console.log("电灯被关闭了,没有被打开");
        }

3.多分支

多分支的语法:

            if(表达式1){
                逻辑代码
            }else if(){
                逻辑代码
            }else if(){
                逻辑代码
            }else{
                逻辑代码
            }
 // 一周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("星期天");
        }

4.Switch

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

           语法:
            Switch(){
                case 常量1:
                    逻辑代码1
                    break;
                case 常量2:
                    逻辑代码2
                    break;
                default:
                    逻辑代码3
                    break;
        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;
        }

你可能感兴趣的:(javascript,前端,开发语言)