我的日常

登录/注册
您现在的位置:论坛 资料库 前端开发 > javascript switch如何使用
总共48087条微博

动态微博

查看: 1984|回复: 1

javascript switch如何使用

[复制链接]

57

主题

5

听众

129

金钱

三袋弟子

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-02-07 16:27:49 |只看该作者 |倒序浏览

javascript switch妙用,有需要的朋友可以参考下。


一般用法

var no = 4;

switch ( no ) {
case 1 :
console.log('no = 1');
break;
case 2 :
console.log('no = 2');
break;
case 3 :
console.log('no = 3');
break;
case 4 :
console.log('no = 4');
break;
}


当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。

switch (expression) {
case label :
statementlist
case label :
statementlist
...
default :
statementlist
}

参数

expression

要求值的表达式。

label

根据 expression 来匹配的标识符。如果 label ===expression,则立即从冒号后的 statementlist 处开始执行,直到遇到一个可选的break 语句,或到达 switch语句的最后。

statementlist

要被执行的一个或多个语句。


注意label===expression

switch 的参数是个表达式,而不是一直认为的需判断的参数,所以可以以下这么用


//switch 参数 为 true
switch ( true ) {
case no < 3 :
console.log( 'no < 3' );
break;
case no === 3 :
console.log( 'no = 3' );
break;
case no > 3 :
console.log( 'no > 3' );
break;
}


//switch 参数 为 false
switch ( false ) {
case typeof no !== 'number' :
console.log( 'no is number' );
break;
case no === 4 :
console.log( 'no = 4' );
break;
}


学东西还是得先看文档来!

这样的写法已经完全可以替换if elseif 了吧(现在经常有文章提倡switch 取代 if elseif)?本人觉得每样东西都有它存在的价值的,请看

var no = 4,
total = 0;
function test() {
++total;
return no;
}


switch ( true ) {
case test() === 1 : //别这没写 test()应该先用变量缓存起来,这里用于测试 switch 判断没满足条件时会一直执行,直到break
console.log('no = 1');
break;
case test() === 2 :
console.log('no = 2');
break;
case test() === 3 :
console.log('no = 3');
break;
case test() === 4 :
console.log('no = 4');
break;
}
console.log(total) //4 switch 判断了4次了


if elseif 有时是无法用switch替代的





科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

1

主题

0

听众

117

金钱

三袋弟子

该用户从未签到

沙发
发表于 2016-11-18 16:46:49 |只看该作者
受教了!这个论坛果然很不错,适合学习
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

关闭

站长推荐上一条 /1 下一条

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表