一、JS中的三大特殊数据:undefined,null,NaN
1.NaN:非法的数值运算得到的结果
1)特点:
①是一个数值型的数据,但是不是一个数字;
② NaN不等于任何值,和任何数据都不相等,NaN不等于NaN。
2)检测方法:isNaN(要检测的数据)
①true:检测结果为 NaN 或能转成NaN;
②false:检测结果不是 NaN 或不能转成 NaN。
2.undefined是:未赋值,类型是undefined;null是:空,类型是object
1)特点:
①undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据;
②undefined被Number转成NaN,null被Number转成0。
3.判断三大特殊的值的方法:
1)NaN可以使用isNaN()来判断:
①方法:isNaN(要判断的值或变量);
②案例:var a = NaN;
console.log(isNaN(a)); // 结果是布尔值:true为是的,false为不是。
2)undefined`可以使用`typeof`判断:
①方法:typeof 要判断的值或变量;
②案例:var b = undefined;
console.log( (typeof b) === "undefined" );// 结果是布尔值:true为是,false为不是;
3)null需要配合typeof和关系运算符判断:
①方法:typeof 要判断的值或变量 === "object"&&要判断的值或变量 == null
②案例:var c = null;
console.log( (typeof c) === "object" );
console.log(c === null);
二、逻辑分支
1.三大结构:
①顺序结构;
②分支结构;
③循环结构。
2.分支语句:
1)if单分支:
①if(条件){执行语句};
2)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
3)switch:多分支
①语法:
var n = 2;
var msg = "";
switch(Number(n)){
case 0:
msg = "星期日";
break;
case 1:
msg = "星期一";
break;
...
default:
msg = "你输入的数字不对,请输入0~6之间的数字";
}
console.log(msg);
②规则:
当要判断的值是固定的数据时,选择使用switch;
如果要判断的值是范围时,选择使用if-else;
switch的case判断,不存在隐式类型转换;
原文:https://www.cnblogs.com/yh-3175339026/p/12755402.html