无论写什么程序,平时都会用到条件语句,如:if...else... switch这种语句,来达到对条件的推断。

以下看来一段代码:

function abc(test){
if (test == 1){
console.log('test的值是'+test);
}
else if (test == 2){
console.log('test的值是'+test);
}
else if (test == 3){
console.log('test的值是'+test);
}
else if (test == 4){
console.log('test的值是'+test);
}
} abc(1);
abc(2);
abc(3);
abc(4);

结果例如以下:

test的值是1

test的值是2

test的值是3

test的值是4

[Finished in 0.1s]

事实上在平时的代码开发中这并没有什么问题,可是非常多的时候我们都希望自己的代码可以变的优雅和简单易懂,而且尽可能少的降低反复的代码。对于以上的问题,在js中存在一个switch来取代这种多if语句推断。

优化后的代码例如以下:

function bcd(test){
switch(test){
case 1:
console.log('test的值是'+test);
break;
case 2:
console.log('test的值是'+test);
break;
default:
console.log('test的值是null');
}
} bcd();
bcd(1);

结果例如以下:

test的值是null

test的值是1

那么在js中有没有更好的方法来做到呢?使用js对象的特点可以轻松对switch进行优化。代码例如以下:

function dcf(test){
return({
cat :function(){console.log('cat');},
dog :function(){console.log('dog');},
zhiqiang : function(){console.log('zhiqiang');}
}[test] || function(){console.log('我是默认值');}
)();
} dcf();
dcf('dog');

我是默认值

dog

这里主要作用到两个知识点:1.js获取对象属性的值2.||操作符取值的问题。

javascript中对条件推断语句的优化的更多相关文章

  1. javascript中对条件判断语句的优化 分类: JavaScript 2015-06-07 09:54 832人阅读 评论(2) 收藏

    不管写什么程序,平时都会用到条件语句,如:if...else... switch这样的语句,来达到对条件的判断.下面看来一段代码: function abc(test){ if (test == 1) ...

  2. JavaScript中的运算符和语句

    一.JavaScript的运算符 a.基本的算术运算符(+.-.*./.%) -.*./.%运算符会在必要的时候将操作数转换为数字,无法转换成数字的操作数将会转换成NaN,相应的运算结果也是NaN. ...

  3. [译]javascript中的条件语句

    本文翻译youtube上的up主kudvenkat的javascript tutorial播放单 源地址在此: https://www.youtube.com/watch?v=PMsVM7rjupU& ...

  4. javascript中 if条件语句中的判断条件类型总结

    在所有编程语言中if是最长用的判断之一,但在js中到底哪些东西可以在if中式作为判断表达式呢? 例如如何几行,只是少了一个括号,真假就完全不同,到底表示什么含义呢 var obj={}; obj.Fu ...

  5. SQL中的条件判断语句(case when zhen if,ifnull)用法

    简介: case具有两种格式.简单case函数和case搜索函数.这两种方式,可以实现相同的功能.简单case函数的写法相对比较简洁,但是和case搜索函数相比,功能方面会有些限制,比如写判定式.还有 ...

  6. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  7. JavaScript 中 if 条件判断

    在JS中,If 除了能够判断bool的真假外,还能够判断一个变量是否有值. 下面的例子说明了JS中If的判断逻辑: 变量值 true '1' 1 '0' 'null' 2 '2'  false 0 n ...

  8. java中过多if-else分支语句的优化方案

    利用Map优化过的的if-else分支 package com.taiping.test; import java.util.HashMap;import java.util.Map; public ...

  9. javascript中if条件

    1.布尔变量 true/false 2.数字非0.非NaN/0.NaN 3.对象非null/null.nudefined 4.字符串非空串/空串 if(!!str){ //do something } ...

随机推荐

  1. YII学习(第一天)

    #Apache # 设置文档根目录为 "basic/web" DocumentRoot "path/to/basic/web" <Directory &q ...

  2. PHP 表单处理

    PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data). PHP - 一个简单的 HTML 表单 下面的例子显示了一个简单的 HTML 表单,它包含两个输入字段和一个 ...

  3. struts2采用convention-plugin实现零配置

    最近开始关注struts2的新特性,从这个版本开始,Struts开始使用convention-plugin代替codebehind-plugin来实现struts的零配置. 配置文件精简了,的确是简便 ...

  4. 格而知之3:Core Data的基本使用

    最近准备做一个随手笔记类的app给自己用,考虑到从未使用过Core Data,就决定用Core Data来做数据存储.在网上参考了一些Core Data的资料后,用一天的时间写了这个demo,主要测试 ...

  5. linux内存操作----kernel 3.5.X copy_from_user()和copy_to_user()

    前面的一篇文章中简单的描写叙述了一下内存映射的内容,http://blog.csdn.net/codectq/article/details/25658813,这篇文章作为用户把内存规划好之后,在用户 ...

  6. Tomcat地址栏传中文参数乱码问题处理

    javascript中有时需要向后台传递中文参数,再次展示到前台时显示为乱码,解决方案: 方案1:修改Tomcat-conf-server.xml文件 大约69-71行  修改为: <Conne ...

  7. 11i - 12 How To Set Email Style Preference For All Users At Once?

    (文档 ID 578574.1) In this Document   Goal   Solution   Workflow Information Center, Diagnostics, & ...

  8. [转载]MATLAB中FFT的使用方法

    http://blog.163.com/fei_lai_feng/blog/static/9289962200971751114547/ 说明:以下资源来源于<数字信号处理的MATLAB实现&g ...

  9. function overloading/ declare function

    Declare a function To declare a function without identifying the argument list, you can do it in thi ...

  10. AdapterView及其子类之三:基于ListView及ArrayAdapter实现列表

    见归档项目ListViewDemo.zip. 基本步骤如下: 1.创建主布局文件,里面包含一个ListView元素. <RelativeLayout xmlns:android="ht ...