Javascript核心读书有感之语句(5)

这种代码没有什么特别之处,它由多条if语句组成,每条if语句的else的从句又包含另外一条if语句。可以用if语句的嵌套形式来完成语法上的等价代码,但与此相比,显然else if的写法更加清晰也更可取。

iii.switch

if语句在程序执行的过程中,创建一支分支,并且可以使用else if来处理多条分支。然后,当所有的分支都依赖同一个表达式的值时,else if并不是最佳的解决方案。在这种情况下,重复计算多条if语句中的表达式是非常浪费的做法。

switch语句适合处理这种情况。关键字switch之后紧跟着园括号括起来的一个表达式。随后是花括号括起来的代码块。

复制代码 代码如下:


            switch (expression) {
                statements
            }

然而switch语句完整的语法要比这更复杂一些。case之后是一个表达式和冒号,case和标记语很类似,只是这个标记语并没有名字。

它只和他后面的表达式关联在一起。当执行执行这条switch语句时,它首先计算expression的值,然后查找case子句的表达式是否和expression的值相同。(这里的相同是按照“===”运算符进行比较的),如果匹配case,它将会执行对应的代码。如果找不到匹配的case,它将会执行"default:"标签中的代码块。如果没有“default:”标签,switch将跳过所有的代码块。

switch语句是非常容易混淆的,用例子介绍会比较清晰一点,下面的switch语句和方才的if/else语句是等价的

复制代码 代码如下:


            switch (n) {
                case 1: //如果n ===1从这里开始
                    //执行代码块1
                    break;
                case 2:
                    //执行代码块2
                    break;
                case 3:
                    //执行代码块3
                    break;
                default:
                    //执行代码块4
                    break;
            }

需要注意的是,每个case语句的结尾处都使用了关键字break。我们将后面介绍break语句,break语句可以使解释器跳出switch语句或循环语句。在switch中,case只是指明了要执行的代码起点,但没有指明终点。如果没有break语句,那么switch语句就从expression的值的匹配的case标签处代码开始执行,依次执行后续的语句,一直到整个switch代码块结束。当然,如果在函数中使用switch语句,可以使用return来替换break,return和break都用于终止switch语句,也会防止一个case语句执行完继续执行下一个case语句块。

下面的语句贴近实战,它根据值的类型将该值转换为字符串。

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgffjf.html