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>