知识总结
一、js中三大特殊数据:undefined、null、NaN
(1)NaN:非法的数值运算的结果
特殊之处:
1:是一个数值型的数据,但是不是一个数字。
2:NaN不等于任何一个值,和任何数据都不相等,NaN不等于NaN.
检测方法:inNaN(要检测的数据)
True:检测结果为NaN或能转成NaN。
False:检测结果不是NaN或不能转成NaN。
(2)undefined是未赋值,类型是undefined;null是空,类型是boject。
特殊之处:
特殊1 Undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据。
特殊2 undefined被Number转成NaN,null被Number转成0。
如何判断三大特殊的值,分别是谁?
NaN可以用isNaN()来判断
(3)isNaN(要判断的值或变量);
Var a = NaN;
Console.log(isNaN(a));结果为布尔值:true为是,false为不是。
Undefined可以使用typeof来判断
Typeof 要判断的值或变量
Var b = undefined;
Console.log(typeof(b));结果为布尔值
Null需要配合typeof和关系运算来判断。
Typeof要判断的值或变量=== “ o b je ct ”
V ar c = null;
console.log( (typeof c) === “object” );
还需要(&&)
要判断的值或变量=== null
Con sole.log(c===null);
二、逻辑分支(选择结构,分支结构)
1:程序的三大结构
顺序结构、分支结构、循环结构
2:分支语句
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、null、NaN都为false。
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判断,不存在隐式类型转换,某些情况下,根据场景,选择是否需要主动转换。
使用switch判断范围
var cj = 45;
switch( true ){
case cj<60:
console.log(“不及格”);
break;
case cj>=60 && cj<70:
console.log(“及格”);
break;
default:
console.log(“以上case都没执行”);
}