`

JavaScript 快速条件判断

 
阅读更多

以下的例子摘自《高性能网站建设进阶指南》的第7章 《编写高效的JavaScript》

利用二分查找算法改写 if语句的条件判断,在条件数量众多,且没有出现频率特别高的条件,以下的写法会尽量减少条件的判断。

假定例子中所有条件对应的value 值出现的频率一样。

if( value < 6){
	if(value < 3){
		if(value ==0){
			return result0;
		} else if(value == 1){
			return result1;
		} else {
			return result2
		}
	} else {
		if(value == 3){
			return result3;
		} else if(value == 4){
			return result4;
		} else {
			return result5;
		}
	}
} else {
	if(value < 8){
		if (value == 6){
			return result6;
		} else {
			return result7;
		}
	} else {
		if (value == 8){
			return result8;
		} else if(value == 9){
			return result9;
		} else {
			return result10;
		}
	}
}

 这段代码确保任何情况下,都不会超过 4 次的条件判断。并不是每个条件都会匹配准确的 value, 而是在找出实际的 value 之前,首先分离出一系列的条件范围。

分享到:
评论

相关推荐

    JavaScript实例精通

    示例描述:JavaScript快速处理日期时间的操作。 5_1.htm 获取当前日期并显示在HTML页中。 5_2.htm 分别获取当前时间的年月日时分秒。 5_3.htm 时间的水中倒影。 5_4.htm 简单的日历。 5_5.htm 标题栏显示...

    《JavaScript实例精通》[源代码]

    示例描述:JavaScript快速处理日期时间的操作。 5_1.htm 获取当前日期并显示在HTML页中。 5_2.htm 分别获取当前时间的年月日时分秒。 5_3.htm 时间的水中倒影。 5_4.htm 简单的日历。 5_5.htm 标题栏显示...

    Python 石头剪刀布[扩展]增加换行调整条件判断代码格式

    Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被人们用于独立的、大型项目的开发和设计 Python解释器易于扩展,...

    2分钟自己写小游戏:使用js和css,快速编写剪刀石布游戏源代码、扫雷源代码、五子棋 新手老手毕业论文都能用

    接着,代码通过一系列的条件判断语句来比较用户和计算机的选择,最终输出胜负结果。整个代码逻辑简单明了,易于理解,是实现剪刀石布游戏的基本框架。 扫雷游戏:扫雷游戏的源代码主要包括游戏初始化、雷区生成、...

    javascript入门笔记

    使用场合:任意数字与1做按位与操作,可以判断奇偶性,结果为1,则为奇数,否则为偶数 0 :0 1 :1 2 :10 3 :11 4 :100 5 :101 5 & 1 101 001 ========== 001 4 & 1 100 001 ==== 000 2、按...

    JavaScript Table行定位效果

    一开始的需求只是表头部分在滚动时能一直固定在头部,那关键要实现的就是让...3,返回至少符合以下一个条件的最接近该节点的元素:1,元素的position不是static;2,是body元素;3,源元素的position是static,祖先元素...

    首个 Vue3.x教程_Vue3.x+Ts+Vuex+Antd Ui框架入门进阶视频教程(34讲)-大地老师

    此教程包括:Vue3.x环境搭建、Vue/cli脚手架使用、Vite脚手架使用、Vue目录结构 核心文件分析、Vue模板语法、Vue事件、Vue表单、Vue双休数据绑定、Vue Dom操作以、JavaScript表达式 、条件判断、 计算属性、watch...

    PHP+HTML+CSS+Javascript+MySQL的网页留言板.zip

    这种特性使得开发者能够轻松地在静态网页中插入动态内容,实现数据渲染、条件判断、循环处理等功能,极大地简化了Web开发流程。同时,PHP也支持纯脚本文件编写,适用于构建复杂的后台逻辑。 PHP语法简洁明了,借鉴...

    phoenix-boilerplate:一套快速开发web应用的UI框架

    Phoenix UI ...9.条件判断语句必须放入{}中。 10.jsx里没有子元素的标签使用反斜杠自闭合。 11.对象元素单行时最后一个元素后面不要逗号,多行时最后元素后要加逗号。 12.使用一致的命名风格,驼峰式(Camel

    Chinese_converter:繁简转换函式库追求正确率先解析词性再繁简转换繁体中文:left-right_arrow:简体中文转换Chinese converter between Traditional Chinese and Simplified Chinese

    自带条件式生成功能,可快速生成辞典用的候选条件式。自附cache 功能,可大大降低多次转译长文的时间(例如在测试期间、修改辞典条件欲重新转换)。Installation Install first.您可能需要6 GB记忆体来启动LTP s

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    读者将能够快速掌握GWT的各种开发所涉及到的内容。 /firstgwt/FirstGWT.html 第一个GWT示例 /calculator/TexCalculator.html 个税计算器 第18章(/ch18) 程序描述:本章将介绍 GWT应用中高级应用的部分,...

    学生毕业管理系统_y65fk--(源码+部署说明+演示视频+源码介绍+lw).zip

    毕业审核:系统提供了毕业审核功能,可以根据学生的学分、成绩等信息判断是否符合毕业条件,并生成相应的毕业名单。 数据统计与分析:系统提供了数据统计与分析功能,可以对学生的成绩、毕业情况等数据进行统计和...

    Java语言基础下载

    条件判断语句&lt;xsl:if&gt; 392 内容总结 395 独立实践 395 第二十二章:使用Java解析XML 397 学习目标 397 解析器的介绍 398 DOM以及广义的基于树的处理具有几个优点 399 文档对象模型(DOM)解析实例 402 DOM对象 404 ...

    整理后java开发全套达内学习笔记(含练习)

    abstract (关键字) 抽象 ['æbstrækt] access vt.访问,存取 ['ækses]'(n.入口,使用权) algorithm n....Annotation [java] 代码注释 [ænәu'teiʃәn] anonymous adj.匿名的[ә'nɒnimәs]'(反义:directly adv....

    log4Net详解(共2讲)

    表单的有些数据,不希望由人工输入获得,国讯OA可以根据被计算字段、原始数据和计算方法自动得出目标字段数据,并可以此作为下一路由选择的判断条件。 4、系统自动提醒 对于请求的不同状况,例如新的请求到达、待...

    js使用小技巧

    快速转到位置 obj.scrollIntoView(true) 锚 &lt;a name="first"&gt; &lt;a href="#first"&gt;anchors 网页传递参数 location.search(); 可编辑 obj.contenteditable=true 执行菜单命令 obj.execCommand 双字节字符 ...

    ferry_web:ferry ui展示

    兼容了多种处理情况,包括串行处理、并行处理以及根据条件判断进行节点跳转。 可通过变量设置处理人,例如:直接负责人、部门负责人、HRBP等变量数据。 系统管理 基于casbin的RBAC权限控制,借鉴了go-admin项目的...

    dreamweaver的各种组件

    Conditional 这个插件可以在网页里插入一个IF/THEN/ELSE的条件判断的javascr- ipt。 Bust Frames 这个Action是用来检测当前HTML文件是否是在一个帧中显示,如果结 果为是,则将不显示当前页面。 IE Window Resizer...

    精通AngularJS part1

    AngularJS如何判断依赖关系318 编写会被安全压缩的JavaScript代码319 数组风格依赖注入的缺陷322 模板预加载323 使用指令预加载模板324 填充$templateCache服务325 组合使用不同的预加载技术327 122优化首页...

    深入云计算 MongoDB管理与开发实战详解pdf.part1

    4.2.10 Javascript 查询和$where 查询 4.2.11 count查询记录条数 4.2.12 limit限制返回记录数 4.2.13 skip 限制返回记录的起点 4.2.14 sort 排序 4.2.15 分页查询 4.2.16 随机抽取文档 4.3 ...

Global site tag (gtag.js) - Google Analytics