前端 day3

二 js中的三个特殊数据 NaN  null  undefined

   1 NaN:非法的数值运算得到的结果

     1 特殊之处

       1 是一个数值型的数据,但是不是一个数字

       2 NaN不等于任何值,和任何数据都不相等,NaN不等于NaN

     2 检测方法:isNaN(要检测的结果)

       1 true :检测结果为NaN或能转成NaN

       2 false :检测结果不是NaN或不能转成NaN

     3

   2 undefined:为赋值,类型是undefined;

     null:是空,类型是object

     1 特殊点1:undefined和null在关系运算符两边隐式转换类型后,得到了一致的数据

     2 特殊点2:undefined被Number转成NaN,null被Number转成0

   3 如何分辨三个特殊值?

     1 NaN可以使用 isNaN() 判断

       1 isNaN(要判断的值或变量)

         var a = NaN;

         console.log( isNaN(a) );    //结果是布尔值:true为是的 ;false为不是。

     2 undefined可以使用 typeof 判断

       1 typeof要判断的值或变量

         var b = undefined;

         console.log( (typeof b) === "undefined" );     // 结果是布尔值:true为是的,false为不是

     3 Null需要配合 typeof 和 关系运算符 判断

       1 typeof要判断的值或变量===“object” ;

         var c = null;

         console.log( (typeof c) === "object" );

         还需要( && ) 要判断的值或变量 == null

         console.log(c === null);

三 逻辑分支(选择结构,分支结构)

   1 程序的三大结构

     1 顺序结构

       1 代码逐行执行,一行一行自上而下执行

     2 分支结构

       1 有选择,十字路口的选择,只能选择一个(if else) ;如果,否则。

   3 循环结构

         重复执行多次的结构。

   2 什么是分支结构

     例 :听懂的扣1:看到了1,继续讲课;

          不懂的扣2:看到了2,重新讲一遍。

   3 分支语句

     1 分支和循环结构,需要配合一些代码来实现,专用代码叫 :语句

     2 if :单分支

       If(条件){执行语句}

     3 if else:双分支

       1 if(条件){条件为true时,要执行的语句}

           Else{条件为false时,要执行的语句}

       2 分支的嵌套(双分支模拟的多分支)

         1 在执行体内,可以继续执行其他分支

         2 if(条件1){

 else if(条件2){

     else if(条件2){

         else … …

     }

}

}

         3 if的小括号里面也会发生隐式类型转换规则

           1 规则 :其他转布尔

             1 数值转布尔:非0为true;       0为false

             2 字符转布尔:非空字符,为true; 空字符,为false

             3 对象转布尔:对象为true

             4 数组转布尔:数组为true

             5 函数转布尔:函数为true

             6  特殊数据转布尔:undefined,NaN,null都为false

         4 switch:多分支

           1 语法:

             var n = 2;

var msg = "";

switch(Number(n)){

                case 0:

                   msg = "星期日";

                   break;

                case 1:

                   msg = "星期一";

                   break;

                ...

                default:

                   msg = "你输入的数字不对,请输入0~6之间的数字";

}

console.log(msg);

2 规则:

  1 当要判断的值是固定的数据时,选择使用switch

         5 如果要判断的值是范围时,选择使用if-else

           1 switch的case判断,不存在隐式类型转换

           2 某些情况下,需要根据场景,选择是否需要主动转换

           3 如果你不管上面的使用建议,非要使用switch判断范围,麻烦

             1 使用switch判断范围

               例:

var cj = 45;

                  switch( true ){

                     case cj<60:

console.log("不及格");

                        break;

                     case cj>=60 && cj<70:

                        console.log("及格");

                        break;

                     default:

                        console.log("以上case都没执行");

                  }

                   ```

             2 某些问题需要利用switch的case的穿透特性,解决(以后讲)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值