• switch语句的妙用


    switch语句的普通用法很简单,如下:

    var a = 3;
    switch (a) {
        case 1:
            console.log(a);
            break;
        case 2:
        case 3:
            console.log(a);
            break;
        default:
            break;
    }
    

    这里a和case列表中从上而下逐一做比较,如果匹配就执行case中的代码,若有break则跳出,无break则继续往下匹配,直到新的匹配和break或switch代码块结束。
    注意:
    a和case值的匹配算法是执行严格相等比较的(‘===’),通常a和case的值都是简单值。

    case的值除了简单值之外,还可以是各种表达式,switch (a){...}中的a会和case中的表达式的结果值进行比较(“===”),由此,我们可以这样:

    var a = [4], b = '3';
    
    function foo(a, b) {
        return Math.abs(a - b) < 2;
    }
    
    switch (true) {
        case !(a && b):    //过滤掉a,b其中有为‘假值’的情况
            console.log('a:'+a,' b:'+b);
            break;
        case foo(a,b):   //当a,b的差值在2以内,foo函数返回true
            console.log('a - b < '+Math.abs(a-b));
        case a == b:
            console.log(a+'=='+b);
            break;
        case a < b:
            console.log(a+'<'+b);
            break;
        case a > b:
            console.log(a+'>'+b);
            break;
        default:
            break;
    }
    

    以上例子中,true和每个case的表达式的值进行严格相等比较,当且仅当case表达式的值为布尔值true时才匹配,任何其他真值都不匹配。
    注意:case !(a && b):必须把&&、||运算符的结果进行显示转换为布尔值,才能匹配(因为&&、||的表达式的返回值不是布尔类型,它返回的是表达式中第一个为true、或第一个为false的那个值)

    所以,只要你想得到的,只要符合规则,都能用switch实现!就是不知道这样写的代码好不好了!

  • 相关阅读:
    订餐系统之微信点餐
    Alfred工具
    使用密码记录工具keepass来保存密码
    一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
    提高性能,抛弃反射
    -串行化与反串行化
    JavaScript 命名空间
    .net SoapHeader验证
    [置顶] Android Sensor系统剖析(4.0)(下)
    VirtualBox虚拟机下Windows登录密码破解方法(阿里云推荐码:1WFZ0V,立享9折!)
  • 原文地址:https://www.cnblogs.com/susufufu/p/5928426.html
Copyright © 2020-2023  润新知