Javascript的switch case后用赋值符号,为什么语句能正常运行

查看:125
本文介绍了Javascript的switch case后用赋值符号,为什么语句能正常运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如图所示:case后用num=0,应该是赋值啊,为什么语句还能正常运行?

var num = parseInt(window.prompt('数字'));
    switch (num) {
        case num = 0:
        alert("0");
        break;
        case num = 1:
        alert("1");
        break;  
        case num = 3:
        alert("3");
        break;
    }

解决方案

  • CaseClause[Yield, Return]:

    • case Expression[In, ?Yield] : StatementList[?Yield, ?Return]opt

http://www.ecma-international...

case 后面是可以跟表达式的哦

执行过程

  1. switch (num) 先获取 num 的值/引用

  2. 逐个 case 遍历,计算表达式,即每次 num 都会获得新值,但不会影响 switch 判断的基准,因为前一步已经获取了引用

  3. 如果匹配了 case 且带终止(abrupt completion,比如 break )的话,就不会遍历剩下的了,即最后 num 得到匹配的值。

  4. 如果没有匹配到的话,case 全部走了一遍,num 得到最后一次的值。

这篇关于Javascript的switch case后用赋值符号,为什么语句能正常运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆