Js-特殊数据&分支类型

Day3
1、 js中三大特殊数据:undefined/null/NaN
a. NaN: 非法的数值运算得到的结果
特殊之处:
是一个数值型的数据,但不是一个数字
NaN不等于任何值,和任何数据都不相等,NaN不等于NaN;
检测方法:isNaN(要检测的数据)
true:检测结果为NaN或能转成NaN;
false:检测结果不是NaNcy或者不能转成NaN;
b. undefined是未赋值,类型是undefined;null是空,类型是object;
特殊:
undefined和null在关系运算符两边隐式类型转换后,得到一致的数据;
undefined被Number转成NaN;null被NaNcy转成0;
c. 如果判断三大特殊的值,分别是谁?
NaN可以使用isNaN判断;
isNaN(要判断的值或变量);
var a=NaN;
console.log(isNaN(a));

undefined使用typeof判断
	typeof 要判断的值或变量;
	var b = undefined;
	console.log((typeof b) ===“undefined”);

null需要配合typeof和关系运算符判断
	typeof 要判断的值或变量 ===”object”

	var c = null;
	console.log((typeof c)) === “object”;
	还需要(&&)
	要判断的值或变量 == null;
	console.log(c === null);

注:这三大特殊的值,远不止这些!!!

2、 逻辑分支(选择解雇偶,分支结构)
a. 程序的三大结构
顺序结构
代码逐行执行
分支结构
有选择判断,如果…否则…
循环结构
重复执行多次
b. 分支语句
if:单分支
if(条件){执行语句};
if else:双分支
if(条件){条件为true是,需要执行的语句}else{条件为false时,要执行的语句};
分支嵌套(双分支模拟的多分支)
在执行体内,可以继续写其他分支;
if(条件1){}else if(条件2){}else if(条件3){}else………
if的小括号里面也会发生隐式类型转换guize
规则:其他转布尔
数值转布尔:非0为true;0为false;
字符转布尔:非空字符为true;空字符为false;
对象转布尔:对象为true;
数组转布尔:数组为true;
函数转布尔:函数为true;
特殊数据转布尔:undefined/NaN/null都为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都没执行”)
}
某些问题需要利用switch的case的穿透特性解决;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值