Javascript的switch case后用赋值符号,为什么语句能正常运行
本文介绍了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
case 后面是可以跟表达式的哦
执行过程
switch (num)
先获取 num 的值/引用逐个 case 遍历,计算表达式,即每次 num 都会获得新值,但不会影响 switch 判断的基准,因为前一步已经获取了引用
如果匹配了 case 且带终止(abrupt completion,比如 break )的话,就不会遍历剩下的了,即最后 num 得到匹配的值。
如果没有匹配到的话,case 全部走了一遍,num 得到最后一次的值。
这篇关于Javascript的switch case后用赋值符号,为什么语句能正常运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文