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动画4.升级版遮罩效果的图片走廊--带自动运行效果
Aug 24 Javascript
js中cookie的添加、取值、删除示例代码
Oct 21 Javascript
Javascript中的方法链(Method Chaining)介绍
Mar 15 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
Oct 19 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
vue watch深度监听对象实现数据联动效果
Aug 16 Javascript
js实现每日签到功能
Nov 29 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
vue 图片裁剪上传组件的实现
Nov 12 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 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
PHP生成带有雪花背景的验证码
2006/10/09 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
URI、URL和URN之间的区别与联系
2006/12/20 Javascript
JavaScript中的Location地址对象
2008/01/16 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
JQuery 获取Dom元素的实例讲解
2017/07/08 jQuery
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
2019/10/23 Javascript
JS实现导航栏楼层特效
2020/01/01 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
2020/03/24 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
python算法学习之基数排序实例
2013/12/18 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
python的多重继承的理解
2017/08/06 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
h5使用canvas画布实现手势解锁
2019/01/04 HTML / CSS
extern是什么意思
2016/03/10 面试题
经典的班主任推荐信
2013/10/28 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
跟单文员岗位职责
2014/01/03 职场文书
初三学生评语大全
2014/04/24 职场文书
家长会欢迎标语
2014/06/24 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
教师个人事迹材料
2014/12/17 职场文书
学校德育工作总结2015
2015/05/11 职场文书
教师节主题班会方案
2015/08/17 职场文书