day3 知识点
一、三大特殊数据:undefined、null、NaN
NaN;非法的数值运算结果
特殊之处:
1.是一个数值型的数据,但不是数字
2.NaN不等于任何值,和任何数据都不相等,NaN不等于NaN
检测方法:isNaN(要检测的数据)
true:检测结果为NaN 或能转成NaN
false;检测结果不是NaN 或不能转成NN
nudefined是:未赋值。类型是undefined。null是:空,类型是object
特殊1:undefined和null在关系运算符两边隐式类型转换后,等到数据一致
特殊2:nudefined备Number转成NaN,null被转成0
如何判断三大特殊的值分别是谁?
NaN用isNaN()判断
()触发隐式转换:严格转换:只要出现非数字,就是NaN。//显示true
isNaN(要判断的值和变量)
比如 var a = NaN
console.log(isNaN(a)) 结果为布尔值
undefined用typeof()判断
比如 var a = nudefined
console.log(typeof a === “undefined”) 结果是布尔值
null需要配合typeof和关系运算符判断
typeof判断的值和变量===“object”
var a = null;
console.log(typeof a === “object”)
还需要(&&) 判断的值或变量==null
console.log(a ===null)
简写为 console.log(typeof a ===“object” && a === null)
二、逻辑分支(选择结构、分支结构)
程序的三大结构
1.顺序结构
代码逐行执行,从上往下执行
2.分支结构
有选择,比如说十字路口,只能选择一个。如果…否则…
3.循环结构
重复执行
分支语句
分支和循环结构,需要配合专用代码才能实现。专用代码:语句
if:单分支
if(条件){执行语句}
if else:双分支
if(条件){条件为true时,执行的语句}esle{false时,执行的语句}
分支的嵌套(双分支模拟多分支)
if(条件1){}else if(条件2)else if(条件3){}.......
if()括号里面也会发生隐式类型转换规则
规则:其他转布尔
数值转布尔:非0为true。0为false
字符转布尔:非空字符,为true。 空字符为false
对象转布尔:对象为true
数组转布尔:数组为true
函数转布尔:函数为true
特殊数据转布尔:undefined,NaN,null都为false
switch:多分支
比如: var a = 2 ;
var b = “”;
switch(a){
case 0:
b=“...”
break;防止穿透
case 1:
b=“...”
break;
....
default:(都不执行显示的语句)
}
规则:当腰判断的值是固定数据时,选择switch
如果要判断的值是范围时,选择if else
switch的case判断,不存在隐式类型转换(某些情况下,根据场景,选择是否需要主动转换)