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 相关文章推荐
javascript跨域方法、原理以及出现问题解决方法(详解)
Aug 06 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
Nov 18 Javascript
ES6中箭头函数的定义与调用方式详解
Jun 02 Javascript
JS鼠标3次点击事件实现代码及扩展思路
Sep 12 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
JavaScript设计模式之装饰者模式实例详解
Jan 17 Javascript
浅谈JS和jQuery的区别
Mar 27 jQuery
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
vue动态禁用控件绑定disable的例子
Oct 28 Javascript
js实现全选和全不选
Jul 28 Javascript
Vue中父子组件的值传递与方法传递
Sep 28 Javascript
可拖拽组件slider.js使用方法详解
Dec 04 Javascript
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
discuz的php防止sql注入函数
2011/01/17 PHP
PHP curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
使用PHP编写的SVN类
2013/07/18 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
php把session写入数据库示例
2014/02/26 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
js获取网页高度(详细整理)
2012/12/28 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
使用C++扩展Python的功能详解
2018/01/12 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
2018/04/22 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python装饰器语法糖
2019/01/02 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
Java servlet面试题
2012/03/04 面试题
名人演讲稿范文
2013/12/28 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
房地产广告词大全
2014/03/19 职场文书
新闻编辑求职信
2014/07/13 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
Java基础——Map集合
2022/04/01 Java/Android