02-运算符和逻辑分支

一.进制

1.二进制 /八进制 /十进制/16进制等
2.进制间的转换
3
parseInt
a.取整 b.其他进制转10进制
toString()
a.转换字符串 b.10进制转其他进制

        var n = 100001001;           //2进制转10进制
        console.log(parseInt(n, 2)); //265
        var m = 11001101;
        console.log(parseInt(m, 2)); //205

        var n = 68;//10进制
        console.log(n.toString(16)); //把10进制68转成18进制
        console.log(n.toString(8)); //把10进制68转成8进制
        console.log(n.toString(2)); //把10进制68转成2进制

        //27  8进制--> 2进制
       console.log( parseInt(27,8).toString(2)); //10111

二.运算符

运算符有哪些?
1.算术运算符 + , - ,* ,/ ,%
注意:算术运算符除了+,会产生隐式转换:把一个字符串的数值,变成了真正数值
强制转换 :Number(),Boolean(),parseInt(),parseFloat()

        console.log("100" - 10);
        console.log("100" / 10);
        console.log("100" * 10);
        console.log("100" % 10);

2.拼接运算符:+ , 加号左右2边,只要有一边出现字符串,就是字符串的拼接

          // "100" + "200" == "100200"
        //隐式转换
        console.log("100" * 1 + "200" * 1); //300
        //强制转换
        console.log(Number("100") + Number("200")); //300

3.逻辑运算符
&& || !
/&& 与 || 被称之为 短路运算符

       // && 2边都满足,才是真的, 找假
        console.log(true && false && false); // false
        console.log(true && true);//true
        console.log(false && true && true);//false

        // ||  2边只有一边是真,就是真, 找真
        console.log(false || true || true);

        // !  取反
        console.log(!true);
        // ||  2边只有一边是真,就是真, 找真
        // && 2边都满足,才是真的, 找假
        var num1 = 1 && 2; // num1 2
        var num2 = true || false; // num2 true-->1
        var result = num1 * num2 + 3 // 2*1+3
        document.write(result); //4 5
        // && 登录
        // || 兼容

4.关系运算符 >,<,>=,<=,==,===, !=,!==

         console.log(6 > 5);//true
        console.log(6 < 5); //false

        console.log(6 >= 5);//true
        console.log(5 <= 5);//true
        console.log(6 == 6);
        console.log("6" == 6);// 只要值相等即可,不管类型
        // 3个等于,恒等于 (全等于),值与类型必须要一致
        console.log(6 === 6);
        console.log(6 === "6"); // 值相等,类型不相同,false
        console.log(6 != 5);
        console.log(6 !== 5); true

注意

   //关系运算符1
        // 1.如果2边都是字符串,就进行ascii比较
        // 2.如果一边是数字,一边是字符串,就把字符串转成数值,进行比较
        // 3.如果2边都是数值,直接比较大小
        // ASCII码,128个
        // 0-9  48-57
        // a-z  97-122
        // A-Z  65-90

        console.log("10" < "9"); //true
        console.log("10" < 9);   // false
        console.log(10 < 9);     //false

        // undefined == 0  undefined是undefined类型,0是数值类型,
        //不能进行比较,所以是false

5.赋值运算符+= ,-=,*=, %=,/= , =

        var n = 10;
        // n=n+5;
        n += 5
        console.log(n);

        var n = 10;
        // n = n / 2;
        n /= 2;
        var n = 10;
        // n = n * 8;
        n *= 8;

        var n = 10;
        // n = n % 2
        n %= 2

6.一元运算符(自增,自减)
++后,先取值,后运算
++前,先运算,后赋值

        var n = 10;
        console.log(n++); //10
        console.log(n); //11

        var n = 10;
        console.log(++n);//11
        console.log(n); //11

        var n = 10;
        //       10    11    13    13
        var res = n++ + n++ + ++n + n++
        console.log(res); //47
        console.log(n);//14

        var n = 10;
        //        11    11    12     14
        var res = ++n + n++ + n++ + ++n;
        console.log(res);//48
        console.log(n);  //14

        //  ++,-- 优先于 * , / 优先于 +

        var i = 12;
        //       12       14      30       15    14
        var sum = i++ + ++i + ++i * 2 + i-- + i--;
        //              85        13
        document.write(sum + " " + i); // "85 13"

7.三目运算符
条件满足,走最近,条件不满足,走远

        var res = (1 == 1 ? 100 : "你好")
        console.log(res);

8.位移运算符<< >>
把一个数,先转换成2进制,向左边移动n位,再有把这个转换10进制

       // 2 >> 3  ==  0;
        // 2-->  "10"
        //  " 10"
        //  " 00"10

        // 2 << 3  ==  8;

三.三大流程语句

程序有3大流程语句
1. 顺序 从上往下执行
2. 分支 (单分支,双分支,多分支)
3. 循环 (for,while, do..while)
单分支的语法

       //语法
       //if(表达式){
       //  逻辑代码
       //}
        if (1 == 2) {
            console.log(1111111);
        }
        console.log(2222222);

双分支语法

 //语法
        // if (表达式) {
        //逻辑
        // } else {
        //逻辑
        // }

        // 1、判断一个数是偶数还是奇数;
        //随机声明一个
        //Math.random() 0-1直接的值,不包含1
        var num = parseInt(Math.random() * 10);
        if (num % 2 == 0) {
            console.log(num + "是一个偶数");
        } else {
            console.log(num + "是一个奇数");
        }
        // 2、求两个数的最大数;
        //方式1
        var n = 10;
        var m = 20;
        var max;
        if (n > m) {
            max = n;
        } else {
            max = m;
        }
        console.log("最大数:" + max);

        //方式2
        var max = n > m ? n : m;
        console.log("最大数:" + max);

        // 3、判断一个年份是闰年还是平年;
        //(1.能被4整除而不能被100整除.
        //(如2004年就是闰年, 1800年不是.)
        // 2.能被400整除.(如2000年是闰年))
        //写法2
        var year = 2018;
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            console.log("闰年");
        } else {
            console.log("平年");
        }

        //写法2
        var year = 2020;
        var exp1 = year % 4 == 0 && year % 100 != 0;
        var exp2 = year % 400 == 0
        if (exp1 || exp2) {
            console.log("闰年"); //闰年
        } else {
            console.log("平年");
        }

多分支语法

   //语法
        // if (表达式) {
        //     //业务逻辑
        // } else if (表达式) {
        //     //业务逻辑
        // } else if (表达式) {
        //     //业务逻辑
        // } else {
        //     //业务逻辑
        // }

        var weakday = parseInt(Math.random() * 10) % 5 + 1
        if (weakday == 1) {
            console.log("10元上网必须配可乐 " + weakday);
        } else if (weakday == 2) {
            console.log("8元上网 " + weakday);
        } else if (weakday == 3) {
            console.log("5元上网+加5毛散烟 " + weakday);
        } else if (weakday == 4) {
            console.log("5元上网 " + weakday);
        } else {
            console.log("与同学合资 打散烟 " + weakday);
        }

IF多分支语法

        //1.
        var y; //声明一个变量,undefined
        var x = 20
        if (x < 1) {
            y = x;//把x的值 赋给y
        } else if (x >= 1 && x < 10) {
            y = 2 * x + 1
        } else {
            y = 5 * x - 17
        }
        console.log(y);

        //2.
        // 成绩判定
        // 大于85 优秀
        // 大于等于75小于等于85 良好
        // 大于等于60小于75 及格
        // 小于60  不及格
        var oScore = parseInt(Math.random() * 101);
        console.log("当前分数:"+oScore);
        if (oScore > 85) {
            console.log("陈独秀,请坐下");
        } else if (oScore >= 75 && oScore <= 85) {
            console.log("扁桃体,不要发言");
        } else if (oScore >= 60 && oScore < 75) {
            console.log("及格");
        } else {
            console.log("不挂科的大学,不完整!");
        }

IF嵌套
尽量减少if的嵌套,不方便维护,和理解
能用单分支,优先用单分支处理

   //语法
        // if (表达式) {
        //     if (表达式) {
        //         if (表达式) {

        //         }
        //     } else {
        //         if (表达式) {

        //         }
        //     }
        // }
        //  2个比较, 3种结果
        //1.多分分支
        var n = parseInt(Math.random() * 10);
        var m = parseInt(Math.random() * 10);
        console.log("n:" + n, "m:" + m);
        if (n == m) {
            console.log("相等");
        } else if (n > m) {
            console.log("n大于m");
        } else {
            console.log("n小于m");
        }
        //2.嵌套解决
        //方式1
        if (n == m) {
            console.log("相等");
        } else {
            if (n > m) {
                console.log("n大于m");
            } else {
                console.log("n小于m");
            }
        }
        //方式2
        if (n != m) {
            if (n > m) {
                console.log("n大于m");
            } else {
                console.log("n小于m");
            }
        } else {
            console.log("相等");
        }

switch

      //语法
        // switch (表达式) {
        //     case 条件1:
        //         //逻辑代码
        //         break;// 中断,终止
        //     case 条件2:
        //         //逻辑代码
        //         break;// 中断,终止
        //     case 条件3:
        //         //逻辑代码
        //         break;// 中断,终止
        //     default:
        //         // 逻辑代码
        //         break;
        // }

        //switch 的比较属于恒等于,在某一个 case里必须加 break,防止穿透
        //快乐的一周
        var num = prompt("请输入1-7的数值");//prompt得到的是字符串
        console.log(num);
        switch (Number(num)) { //使用Number()方法,对num进行强制转换成数值类型
            case 1:
                console.log("周一有点困,");
                break;
            case 2:
                console.log("周二,麻木");
                break;
            case 3:
                console.log("周三,最难熬");
                break;
            case 4:
                console.log("周四,希望时间快点");
                break;
            case 5:
                console.log("周五,莫名其妙的兴奋,眼睛一致盯着外面");
                break;
            default:
                console.log("浑浑噩噩的过了");
                break;
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容