9.5-day02-js基础

77 阅读6分钟
  1. 进制转换

    toString() 10进制转至其他进制
    parseInt() 其他进制转至10进制

//  1100

      var num = 1100;
      var res = parseInt(num, 2);
      console.log(res);

 // 10111 --> 10进制
      var num = 10111;
      var res = parseInt(num, 2);
      console.log(res);
      
  var a = 193
      console.log(a.toString(2)); //11000001
      console.log(a.toString(8)); // 301
      console.log(a.toString(16)); //c1
  // 56的16进制转换 二进制

      var b = 56;// 16进制

      console.log(parseInt(56, 16).toString(2)); //1010110
  // 1. 将这些二进制1100 , 10111转成八进制、十进制、十六进制
  // 2. 将下列10进制数转成二进制
  //  193 ,   49 ,   81 ,  35
  // 3. 将下列二进制数转成十进制数
  // 100001001 
  // 11001101
        console.log("------------");
        var a=1100,b=10111;
        console.log(parseInt(a,2).toString(8));
        console.log(parseInt(a,2));
        console.log(parseInt(a,2).toString(16))
        console.log("-----------");
        console.log(parseInt(b,2).toString(8));
        console.log(parseInt(b,2));
        console.log(parseInt(b,2).toString(16))
        console.log("2.------------")
        var a1=193,a2=49,a3=81,a4=35;
        console.log(a1.toString(2));
        console.log(a2.toString(2));
        console.log(a3.toString(2));
        console.log(a4.toString(2));
        console.log("3.------------")
        var b1=100001001,b2=11001101;
        console.log(parseInt(b1,2));
        console.log(parseInt(b2,2));
  1. 运算符
//1.运算符有哪些呢?
      //  1).算术运算符
      //    +,-,*,/,%
      //  2).逻辑运算符
      //     &&  ||  !
      //  3).关系运算符
      //   >,<,>=,<=,==,===,!=,!==
      //  比较运算符的规则 (牢记)
      //       1.数值与数字比较,直接比较大小
      //       2.数值与字符串比较,字符串转换成数字,再比较大小
      //       3.字符与字符比较,把字符转换成ASCII码,再比较大小
      //        a - z  97 ~ 122
      //        A - Z  65 ~ 90
      //        0 - 9  48 ~ 57
      //  4).一元运算符
      //      a++,a--  先取值,后运算
      //      ++a,--a  先运算,后赋值
      //
      //  5).三目运算符(三元)
      //      表达式 ? 条件1:条件2
      //  6).赋值运算符
      //      +=,-=,*=,/=,%=, =
      //  7).位移运算符
      //      >> 右位移  , <<  左位移
      //  8).拼接运算符
      //      +    左右2边,有1边出现字符,就是拼接

      // //一.算术运算符
      // //  +,-,*,/,%
      // var a = "10";
      // var b = "2";
      // var res = a - b; //隐式转换
      // console.log(res);

      // // 11%5   2*5=10 余1

      // //% 取值范围
      // // Math.random() 生成0~1之间的值,包含0,不包含1  [0,1)
      // // 0 | 1
      // // % 5 的范围 0~4
      // // %10 的范围是 0~9
      // // %100的范围是 0~99

      // console.log(parseInt(Math.random() * 10) % 5);
      // // + 左右2边,有1边出现字符,就是拼接
      // var a = "10";
      // var b = 20;
      // var res = a + b;
      // console.log(res);

      // //逻辑运算符
      // // && 与     我与你是帅哥 ,请问几个帅哥 2个
      // // || 或     我或你是帅哥 ,
      // //  ! 非  取反

      // console.log(true && true);
      // console.log(true && false);
      // console.log(true || false);
      // console.log(false || true);

      // //1.短路运算符 || 或
      // // 只找"真",找到真的就不往后面执行
      // // && 和 ||
      // console.log("想睡觉到的..草有1米高");
      // true || num;
      // console.log("不想睡觉到的..工资有1万");


      // //2.短路运算符 && 与
      // //只找假,找到假,就不往后面执行

      // // true && true && num
      // // console.log("11111");

      // //3. ! 取反
      // // console.log(!true);

      // // && 找到假
      // // || 找到真
      // // true --> 1
      // // false--> 0
      // var num1 = 1 && 2;   //0和NaN为false,非0为true
      // var num2 = true || false;
      // //            2     1
      // var result = num1 * num2 + 3
      // console.log(result); // 5


      // //关系运算符
      // // >, < ,>=,<=
      // // console.log(5 >= 5);
      // // console.log(5 <= 5);
      // // console.log(5 == 5);
      // // console.log(5 === 5);

      // // ==, ===, !=, !==
      // // == 它会隐式转换. 它比较的是值,不是类型
      // // 1元钱纸币和1元钱硬币 面额相等
      // console.log(10 == "10");
      // console.log(10 == "10");
      // // === 不会隐式转换,比较的是值与类型都要相同
      // // 材质与面额要一直
      // console.log(10 === 10); //false

      // // !=
      // // 3 != 4
      // // === 值与类型
      // // !==
      // console.log(3 !== 4);  //true

      // // 比较运算符的规则 (牢记)
      // //1.数值与数字比较,直接比较大小
      // //2.数值与字符串比较,字符串转换成数字,再比较大小
      // //3.字符与字符比较,把字符转换成ASCII码,再比较大小
      // // a - z  97 ~ 122
      // // A - Z  65 ~ 90
      // // 0 - 9  48 ~ 57

      // //          65    66
      // console.log("A" < "B");

      // // console.log("3" > 2);
      // // console.log("你好" > 2); //false
      // // console.log("AA" >= 2); //false
      // // console.log("AA" <= 2); //false



      // // 9, 11     57     49 49
      // console.log("9" > "11"); // true


      // 一元运算符
      // a++  先取值,后运算
      // ++a  先运算,后赋值
      // a-- ,--a

      // var a = 10;
      // console.log(a ++);   //10
      // console.log(a);
      // console.log("--------");



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


      // var a = 10;
      // var res = a++ + a++ + a++;

      // console.log(a);//13
      // console.log(res);//33


      // var a = 10;
      // var res = a++ + ++a + a++ + ++a;
      // console.log(a); // 14
      // console.log(res);//48


      // 一元 > * /  > + -
      // var i = 12;
      // var sum = i++ + ++i + ++i * 2 + i-- + i--;
      // document.write(sum + " " + i);
      // 75 13
      // 85 13

      //三目(三元)运算符
      //语法
      //     表达式 ? 条件1:条件2

      // // 1==1? true:false;
      // var num = 10;
      // var res = num < 5 ? "大于5" : '小于5';
      // console.log(res);

      //  =,==,===, 代表什么意思?
      //  =   赋值, 把右边的值给到左边
      //  ==  比较 只比较值,类型会自动进行转换
      //  ===  值和类型,都要相同,才会全等于 (恒等于)
      // 赋值运算符
      // +=,-=,*=, /=, %=

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

      // var a = 10;
      // a -= 3; // a=a-3 10-3的结果7,把7赋值给a,最后a的结果就是7
      // console.log(a);

      // var a = 10;
      // a *= 3;  // a=a*3
      // console.log(a);

      // var a = 10;
      // a /= 5;  // a=a/5
      // console.log(a);

      // var a = 10;
      // a %= 3;
      // console.log(a);


      // 2 >> 2 等于 0,  2 << 2 等于 8

      // 位移运算符
      // 2  2  把第1个2,转换成2进制,再向左边或右边移动n位, n:就是第2个数
      // 2   3
      // 2   5

      //2 ---> 二进制的数     000010



      //看到NaN 参与比较, 就是false
  1. 分支结构(单分支,双分支,多分支)

    单分支语法: if (表达式){//逻辑代码}

    var a = 10;
      console.log("111111");
      if (a == 10) {
        console.log("条件满足,我被执行");
      }
      console.log("222222");
    

    双分支:表达式1 算术表达式 逻辑表达式 关系表达式 常量...
    语法 if (表达式1) { //逻辑代码1 } else { //逻辑代码2 }

    双分支
    var str = prompt("请输入开和关");
    if (str === "开") {
      console.log("世界亮了");
    } else {
      console.log("伸手不见五指黑");
    }
    
    //Math.random()  0~1 包含0,不包含1
    // 1、判断一个数是偶数还是奇数;
    // 0~9 包含0,也包含9
    var num = parseInt(Math.random() * 10);
    if (num % 2 == 0) {
      console.log(num + "是一个偶数");
    } else {
      console.log(num + "是一个奇数");
    }
    
    // 2、求两个数的最大数;
    var numA = parseInt(Math.random() * 10);
    var numB = parseInt(Math.random() * 10);
    console.log(numA, numB);
    if (numA > numB) {
      console.log("numA是最大的数:" + numA);
    } else {
      console.log("numB是最大的数:" + numB);
    }
    
    //------------------------
    //使用三目运算符
    // 1、判断一个数是偶数还是奇数;
    var num = parseInt(Math.random() * 10);
    
    // var res = num % 2 ? "奇数" : "偶数";  //写法1
    var res = num % 2 == 0 ? "偶数" : "奇数"; //写法2
    console.log(num + "是一个" + res);
    // 2、求两个数的最大数;
    var numA = parseInt(Math.random() * 10);
    var numB = parseInt(Math.random() * 10);
    
    var res = numA > numB ? "numA大" : (numA === numB ? "等于" : "numB大")
    console.log(numA, numB, res);
    
    // 3、判断一个年份是闰年还是平年;
    // (1.能被4整除而不能被100整除.(如2004年就是闰年,1800年不是.)
    // 	         2.能被400整除.(如2000年是闰年))
    
    //写法1
    var year = 2020;//闰年 4月
    if (year % 4 === 0 && year % 100 != 0 || year % 400 === 0) {
      console.log("闰年");
    } else {
      console.log("平年");
    }
    
    //写法2 
    var year = 2020;
    //1.能被4整除而不能被100整除
    var exp1 = year % 4 == 0 && year % 100 != 0;
    // 2.能被400整除
    var exp2 = year % 400 == 0;
    if (exp1 || exp2) {
      console.log("闰年");
    } else {
      console.log("平年");
    }
    

    多分支的语法
    if (表达式1) { //逻辑代码 } else if (表达式2) { //逻辑代码 } else if (表达式3) { //逻辑代码 } else { //逻辑代码 }

    //一周7天
    var day = prompt("请输入星期几的数字?");
    if (day == 1) {
      console.log("星期一:红烧肉+雪碧");
    } else if (day == 2) {
      console.log("星期二:红烧鱼+雪碧");
    } else if (day == 3) {
      console.log("星期三:小炒肉");
    } else if (day == 4) {
      console.log("星期四:盖码饭");
    } else if (day == 5) {
      console.log("星期五:米粉");
    } else if (day == 6) {
      console.log("星期六:方便面");
    } else {
      console.log("回家吃");  
      
      //多分支练习
      1.
    var x = prompt("请输入一个数?"), y;
    if (x < 1) {
      y = x;
    } else if (x >= 1 && x < 10) {
      y = 2 * x + 1;
    } else {
      y = 5 * x - 17;
    }
    console.log(y);
    
    
    2.
    var score = prompt("请输入分数");
    //输入的是分数
    if (!isNaN(score) && score !== "") {
      //是数字
      if (score > 85) {
        console.log("秀儿,是你吗?");
      } else if (score >= 75 && score <= 85) {
        console.log("良好");
      } else if (score >= 60 && score < 75) {
        console.log("及格");
      } else {
        console.log("不及格");
      }
    } else {
      console.log("别捣蛋!");
    }
    
    var x = prompt("请输入一个")
    if (x != 0) {
      if (x > 0) {
        console.log("大于0");
      } else {
        console.log("小于0");
      }
    } else {
      console.log("x等于0");
    }
    }
    
    
    1. switch

    switch 开关
    1. 防止穿透 break
    2. 恒等于,值和类型要一致
    语法 switch (表达式) { case 常量1: //逻辑代码1 break; case 常量2: //逻辑代码2 break; default: //逻辑代码3 }

    var grade = prompt("请输入等级?");
    switch (grade) {
      case "A":
        console.log("80~100");
        break;
      case "B":
        console.log("70-79");
        break;
      case "C":
        console.log("60~69");
        break;
      case "D":
        console.log("小于60");
        break;
      default:
        console.log("输入有误");
    }
    
    
    var a = 0;
    
    if (++a) {
      console.log("我被执行了吗?");
    }  
    
    //switch练习
    // 1周7天,每一天过不同生活,可有质量
    
    var day = prompt("请输入星期几?(数值1-7)");
    // console.log(typeof day);
    
    switch (Number(day)) {
      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;
      case 6:
        console.log("一天一包 芙蓉");
        break;
    
      default:
        console.log("一天一包 烟屁股");
        break;
    }
    
//9.4练习
// 1, 今天课堂所有的代码,照敲至少一, 理解并熟练掌握今日知识点.
      // 2, 入职薪水10K,每年涨幅入职薪水的5%,50年后工资多少?
      var salary = 10000;
      var money = salary * 0.05 * 50;
      //此处的+ 是拼接
      console.log("入职薪水10K,每年涨幅入职薪水的5%,50年后工资" + money);



      // 3, 为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
      var h = 89;
      var day = parseInt(h / 24)
      console.log(day);
      var hour = h % 24;
      console.log(hour);
      console.log("编程计算共" + day + "天零" + hour + "小时");
      console.log('"编程计算共' + day + '天零' + hour + '小时"');

      // 4, 小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。
      //它需要一个程序将华氏温度(80度)转换为摄氏度,
      //并以华氏度和摄氏度为单位分别显示该温度。
      //提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)
      var hssd = 80;
      var ssd = 5 / 9.0 * (hssd - 32);
      console.log(parseInt(ssd));

      // 5, 给定一个三位数,分别把这个数字的百位、十位、个位算出来并显示。

      var num = 895;
      var a = num % 10;
      var b = parseInt(num / 10) % 10;
      var c = parseInt(num / 100)
      console.log(c, b, a);