其他分享
首页 > 其他分享> > 4.22分支语句

4.22分支语句

作者:互联网

分支语句:
NaN`:非法的数值运算得到的结果
    - 特殊之处:
        1. 是一个数值型的数据,但是不是一个数字
        2. 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(要判断的值或变量);
        ```js
            var a = NaN;
            console.log(isNaN(a));
        ```
    - `undefined`可以使用`typeof`判断
        - typeof 要判断的值或变量
        ```js
            var b = undefined;
            console.log( (typeof b) === "undefined" );
        ```
    - `null`需要配合`typeof`和关系运算符判断
        - typeof 要判断的值或变量 === "object"
        ```js
            var c = null;
            console.log( (typeof c) === "object" );
        ```
        - 还需要( && )
        - 要判断的值或变量 == null
        ```js
            console.log(c === null);  if的小括号里面也会发生隐式类型转换规则
    - 规则:其他转布尔
        - 数值转布尔:非0为true,0为false
        - 字符转布尔:非空字符,为true,空字符,为false
        - 对象转布尔:对象为true
        - 数组转布尔:数组为true
        - 函数转布尔:函数为true
        - 特殊数据转布尔:undefined,NaN,null都为false
 `switch`:多分支
    - 语法:
        ```js
        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判断,不存在隐式类型转换
            - 某些情况下,需要根据场景,选择是否需要主动转换

标签:语句,判断,undefined,NaN,typeof,4.22,null,true,分支
来源: https://www.cnblogs.com/xiaokeai233/p/12757565.html