学习前端的第二十七天

一、undefined,null,NaN

  • NaN:非法的数值运算得到的结果
    • 特殊之处:
      1. 是一个数值型的数据,但不是数字
      2. NaN和任何数据都不相等,NaN也不等于NaN
    • 检测方法:isNaN(要检测的数据)
      • true:检测结果为 NaN 或能转成 NaN
      • false:检测结果不是 NaN 或不能转成 NaN
  • undefined:未赋值,类型是undefined;
  • null:空,类型是object
    • 特殊1:undefined和null在关系运算符两边隐式类型转换后,数值一样
    • 特殊2:undefined被Number转成NaN,null被Number转成0
  • 判断三大特殊值
    • NaN使用isNaN()来判断
      • isNaN(要判断的值或变量);
          var a = NaN;
          console.log(isNaN(a)); // 结果是布尔值:true为是的,false为不是
      
    • undefined可以使用typeof判断
      • typeof 要判断的值或变量
          var b = undefined;
          console.log( (typeof b) === "undefined" );// 结果是布尔值:true为是的,false为不是
      
    • null需要配合typeof和关系运算符判断
      1. typeof 要判断的值或变量 === “object”
          var c = null;
          console.log( (typeof c) === "object" );
      
      1. 要判断的值或变量 == null
          console.log(c == null);
      
      • 注:只有两个条件都符合,才能证明是null

二、逻辑分支(选择结构,分支结构)

  1. 程序的三大结构
  • 顺序结构
  • 分支结构
  • 循环结构
  1. 分支语句
  • 分支和循环结构,需要配合语句才能实现

  • if:单分支

    • if(条件){执行语句}
  • if else:双分支

    • if(条件){条件为true时,要执行的语句}else{条件为false时,要执行的语句}
    • 分支的嵌套(双分支模拟的多分支)
      • 在执行体内,可以继续写其他分支
      • if(条件1){}else if(条件2){}else if(条件3){}else......
  • if的小括号里面会发生隐式类型转换

    • 规则:其他转布尔
      • 数值转布尔:非0为true,0为false
      • 字符转布尔:非空字符,为true,空字符,为false
      • 对象转布尔:对象为true
      • 数组转布尔:数组为true
      • 函数转布尔:函数为true
      • 特殊数据转布尔:undefined,NaN,null都为false
  • switch:多分支

    • 语法:
      var n = 2;
      var msg = "";
      switch(Number(n)){
          case 0:
              msg = "星期日";
              break;
          case 1:
              msg = "星期一";
              break;
          case 2:
              msg = "星期二";
              break;
          case 3:
              msg = "星期三";
              break;
          case 4:
              msg = "星期四";
              break;
          case 5:
              msg = "星期五";
              break;
          case 6:
              msg = "星期六";
              break;
          default:
              msg = "你输入的数字不对,请输入0~6之间的数字";
      }
      console.log(msg);
      
    • 规则:
      • 当要判断的值是固定的数据时,选择使用switch

        • 如果要判断的值是范围时,选择使用if-else
      • switch的case判断,不存在隐式类型转换

        • 某些情况下,需要根据场景,选择是否需要主动转换
      • 使用switch判断范围

        var cj = 45;
        switch( true ){
            case cj<60:
                console.log("不及格");
                break;
            case cj>=60 && cj<70:
                console.log("及格");
                break;
            default:
                console.log("以上case都没执行");
        }
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值