swtich/if...else的替代语句


Posted in Javascript onAugust 16, 2015

很多时候,if...else...有很多判断分支选项,就会见到:

if (animal === 'dog') {
 // TO DO 'dog'
} else if (animal === 'cat') {
 // TO DO 'cat' 
} else if (animal === 'bird') {
 // TO DO 'bird' 
} else if (animal === 'fish') {
 // TO DO 'fish' 
} else {
  // TO DO 'other' 
}

确实通俗易懂,且写起来好方便,一路都是else if,太多选项分支,就有人用swtich这样写了:

swtich (animal) {
  case 'dog':
    // TO DO 'dog'
    break;
  case 'cat':
    // TO DO 'cat' 
    break;
  case 'bird':
    // TO DO 'bird' 
    break;
  case 'fish':
    // TO DO 'fish'
    break;
   default:
    // TO DO 'other'
}

 但是,还是可以借鉴使用Object的hash思想:

function getAnimalName(name) {
  var animals = {
    'dog': function () {
      return 'dog';
    },
    'cat': function() {
      return 'cat';
    },
    'bird': function() {
      return 'bird';
    },
    'fish': function() {
      return 'fish';
    },
    'default': function() {
      return 'other';
    }
  };
  return (animals.name || animals.default)();
}
var animal = getAnimalName('dog');
console.log(animal);// 'dog'

以上就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQuery参数列表集合
Apr 06 Javascript
用html+css+js实现的一个简单的图片切换特效
May 28 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
Mar 26 Javascript
Highcharts入门之基本属性
Aug 02 Javascript
JS多文件上传的实例代码
Jan 11 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
Vue循环组件加validate多表单验证的实例
Sep 18 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
Openlayers实现点闪烁扩散效果
Sep 24 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
javascript数组去重的六种方法汇总
Aug 16 #Javascript
JS+CSS实现下拉列表框美化效果(3款)
Aug 15 #Javascript
js时钟翻牌效果实现代码分享
Jul 31 #Javascript
js实现点击文本框显示日期选择器特效代码分享
May 21 #Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 #Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
Aug 15 #Javascript
jQuery幻灯片特效代码分享--鼠标滑过按钮时切换(2)
Nov 18 #Javascript
You might like
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
PHP计划任务、定时执行任务的实现代码
2011/04/23 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
详解JavaScript逻辑And运算符
2015/12/04 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
JavaScript实现区块链
2018/03/14 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
详解javascript void(0)
2020/07/13 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python实现全排列的打印
2018/08/18 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
Django模板语言 Tags使用详解
2019/09/09 Python
工作过失检讨书
2014/02/23 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
鼓舞士气的口号
2014/06/16 职场文书
大学生工作自荐书
2014/06/16 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
2014年科普工作总结
2014/12/06 职场文书
信息简报范文
2015/07/21 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
Linux系统下安装PHP7.3版本
2021/06/26 PHP
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
2022/08/05 Java/Android