js中的三大特殊数据:undefined,null,NaN及逻辑分支(选择结构,分支结构)
Posted dajia0809
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中的三大特殊数据:undefined,null,NaN及逻辑分支(选择结构,分支结构)相关的知识,希望对你有一定的参考价值。
1.js中的三大特殊数据:undefined,null,NaN
-
NaN
:非法的数值运算得到的结果-
特殊之处:
-
是一个数值型的数据,但是不是一个数字
-
NaN不等于任何值,和任何数据都不相等,NaN不等于NaN
-
-
检测方法:
isNaN(要检测的数据)
-
true:检测结果为 NaN 或能转成 NaN
-
false:检测结果不是 NaN 或不能转成 NaN
-
-
-
undefined
是:未赋值,类型是undefined;null
是:空,类型是object-
特殊1:undefined和null在关系运算符两边隐式类型转换后,得到了一致的数据
-
特殊2:undefined被Number转成NaN,null被Number转成0
-
-
如何判断三大特殊的值,分别是谁?
-
NaN
可以使用isNaN()
来判断-
isNaN(要判断的值或变量);
var a = NaN;
console.log(isNaN(a)); // 结果是布尔值:true为是的,false为不是 -
-
undefined
可以使用typeof
判断-
typeof 要判断的值或变量
var b = undefined;
console.log( (typeof b) === "undefined" );// 结果是布尔值:true为是的,false为不是 -
-
null
需要配合typeof
和关系运算符判断-
typeof 要判断的值或变量 === "object"
var c = null;
console.log( (typeof c) === "object" );-
还需要( && )
-
要判断的值或变量 == null
console.log(c === null);
-
-
-
程序的三大结构
-
顺序结构
-
分支结构
-
循环结构
-
分支语句
-
分支和循环结构,需要配合一些专用代码才能实现,专用代码叫:语句
-
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,NaN,null都为false
-
-
-
语法:
var n = 2;
var msg = "";
switch(Number(n)){
case 0:
msg = "星期日";
break;
case 1:
msg = "星期一";
break;
-
规则:
-
当要判断的值是固定的数据时,选择使用switch
-
如果要判断的值是范围时,选择使用if-else
-
-
switch的case判断,不存在隐式类型转换
-
某些情况下,需要根据场景,选择是否需要主动转换
-
-
如果你不管上面的使用建议,非要使用switch判断范围,注定要多掉点头发
-
使用switch判断范围
var cj = 45;
switch( true ){
case cj<60:
console.log("不及格");
break;
case cj>=60 && cj<70:
console.log("及格");
break;
default:
console.log("以上case都没执行");
} -
-
-
-
-
-
以上是关于js中的三大特殊数据:undefined,null,NaN及逻辑分支(选择结构,分支结构)的主要内容,如果未能解决你的问题,请参考以下文章