无论写什么程序,平时都会用到条件语句,如: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. Android学习总结——适配器

    适配器是AdapterView视图(如ListView - 列表视图控件.Gallery - 缩略图浏览器控件.GridView - 网格控件.Spinner - 下拉列表控件.AutoComplet ...

  2. 如何煉成NET架構師

    微软的DotNet 开发绝对是属于那种入门容易提高难的技术.而要能够成为DotNet 架构师没有三年或更长时间的编码积累基本上是不可能的.特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此 ...

  3. [工作问题总结]MyEclipse 注册

    ------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------ 1.本人 ...

  4. activity之栈管理

    在android中.一个activity组件能够激活还有一个activity组件:本程序activity和其他程序的activity.     若新的被激活的activity组件属于还有一个应用程序, ...

  5. apache启动问题: Could not reliably determine the server's fully qualified domain name

    [root@rusky]# service httpd startStarting httpd: httpd: apr_sockaddr_info_get() failed for ruskyhttp ...

  6. 如何改变word修订模型下的视图

    在Word中执行与Find.Range等相关的操作时,需对修订模式下的文档进行特殊处理. 核心知识点 Word中的 RevisionsView 属性只有两种设置:显示标记的最终状态(Final Sho ...

  7. Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  8. 关于ASP.NET 中站点地图sitemap 的使用

    在ASP.NET  MVC 如此火热的时期,我竟然不适时宜的谈起ASP.NET ,恐怕会引来一阵嘲笑.最为无趣的是,讲解的竟然还是其中的一个控件.oh~~  my god!my out! ^_^ Si ...

  9. LABJS源码浅析

    一.关于LABjs的简单介绍 作者:Kyle Simpson 作用:动态并行加载脚本文件 以及 管理加载脚本文件的执行顺序 官网:http://www.labjs.com/ 二.关于LABjs的使用 ...

  10. go pprof

    import _ "net/http/pprof" func main() { go func() { http.ListenAndServe("localhost:60 ...