if和switch选择

013、if判断接受的数据类型
 
非布尔类型的条件判断
 
if( 2 )   number类型   ------>所有的非0数字代表  true  ,    0代表false
 
if("abc")  string类型   -------> 所有的非空字符串都代表  true, "" 代表false
 
if(obj)   object类型   -------->所有的非null的对象都代表true,null代表false
 
if(undefined)            -------> 代表false,
 
if(NaN)                   --------> 代表false
 
if( function )           ---------> 如果函数存在,代表true
 
014、if语句的优化
 
1、把次数多的条件和执行结果放到最前面
 
2、减少第一次无用的判断,可以用嵌套判断
 
3、判断语句禁止出现三次嵌套
 
015、谈谈你对switch的理解
 
1、switch的括号里面放的是一个变量
 
  2、case相对应的值是关于这个变量的一个值
 
3、switch里面的这个变量和case里面这个变量不会进行隐式类型的一个转换,而是进行了恒等比较。所以一定要注意这个变量和这个case里面的值是不是一个类型
 
4、关于switch里面的case会有一个穿透效果,这个效果有的时候会给我们带来好处(详情请看最后一个案例),有的时候会给我们带来坏处,如果不需要这种穿透效果的时候加break
 
5、swicth里面如果这个变量没有匹配到case里面这个值,那么就需要返回一个信息。所以在case的末尾一定要加上一个default;这样既给用户的体验比较完美,另一方面对代码的今后维护也有很大的帮助
 
6、比较的值是固定值
 
016、if和swicth的应用场景
 
 if :
            1、具体的值进行判断
            2、区间的判断
            3、对运算的结果是boolean类型表达式进行判断  true   flash
 
switch:
            1、对具体的值进行判断
            2、值的个数是固定的
 
            对于几个固定的值判断,建议使用switch 语句。因为switch 语句会将具体的答案都加载进内存,效率相对高一点
            基于代码的可读性:如果条件较少时,if-else容易阅读,而条件较多时switch更容易阅读
 
017、目前所了解的转义字符
 
\" 
\'
\n  表示换行
\t  tab键
<script>
    var num=0;
    if(num%2==0 && num != 0){
        console.log(num+"是偶数")
    }else if(num%2 != 0 && num != 0){
        console.log(num+"是奇数")
    }else{
        console.log(num+"既不是奇数也不是")
    }
</script>
判断奇偶数
<!--根据一个数字日期,判断这个日期是这一年的第几天
     例如: 20160211,计算后结果为42-->
     <input type="text" id="txt" value="" />
     <input type="button" id="bnt" value="变" />
    </body>
</html>
<script>
    bnt.onclick=function(){
        var day=txt.value;
        var year=parseInt(day/10000);
        var month=parseInt(day%10000/100);
        var today=day%100;
        var towday=28;
        if ((year%4==0 && year/100!=0) || year/400==0) {
            towday=29;
        }
        switch(month){
            case 12:
            today+=30;
            case 11:
            today+=31;
            case 10:
            today+=30;
            case 9:
            today+=31;
            case 8:
            today+=31;
            case 7:
            today+=30;
            case 6:
            today+=31;
            case 5:
            today+=30;
            case 4:
            today+=31;
            case 3:
            today+=towday;
            case 2:
            today+=31;
            case 1:
            alert(today);
            break;
            default:
            alert("你输入的号码有误")
        }
</script>

 

 

posted @ 2017-08-16 13:18  地龙*光与影  阅读(192)  评论(0编辑  收藏  举报