JavaScript“尽快失败”的原则实例详解


Posted in Javascript onOctober 08, 2016

我第一次听说编码原则中有“尽快失败”这一条时,觉得很奇怪,为什么代码要失败?应该成功才对呀。但事实上,当代码在遇到错误的时候应该尽快的终止。为了检测各种状态,我们需要频繁的创建if语句与条件分支,而这些条件检测的结果不是成功就是失败(true&&false)。之所以会有这么多的条件检测语句,是因为如果不在构建过程中植入这些监测点(checkpoint),那么浏览器内核会执行很多无用的代码,并占用许多宝贵的CPU性能和处理时间,拖慢网站加载速度。

根据那些判断结果为false的检测语句块放置位置的不同,有些情况下,一旦发生错误就迅速中止,而另外一些情况下则会在执行了很长一段时间的无用代码后才终止。如果我们在遍历数组之前先检测其长度,或是在处理DOM时先看看有没有我们需要的class属性,那么就可以在不满足条件时立刻中止代码的执行。因为遍历数组信息与解析DOM都是相当耗时的工作,所以最好是在执行这些任务之前先检测一下,在满足于执行条件时及早终止。正是基于上述原因,所以我才要提倡那种“尽快失败”的代码。

这是我的示例代码:

//创建在遇到错误时尽快终止的代码
(function Salad(totalSlices,peopleCount){ //我要创建一个沙拉函数,用来返回派对需要的总沙拉数量
"use strict";
var fairness = totalSlices * peopleCount;
return fairness;
})();
(function () {
"use strict";
var body = document.getElementsByTagName("body")[0],
//我在此闭包函数中建立了一些变量,并将其传入salad函数以供计算
partyStarter = "starlen",
peopleCount = 18,
Salad = 6,
sliceCount = Salad * 3;
if(peopleCount > 0 && Salad >0){
//先检测一下我们的派对有没有人或沙拉,避免js消耗不必要的计算性能
body.innerHTML += " '<p>'"+ partyStarter +","+ Salad(peopleCount,Salad) +" '</p>' "
} else {
body.innerHTML += "<p>参加聚会的人数或沙拉果盘不足!</p>"
}
})();

在输出某些变量信息之前,我们首先检查确保这些变量信息是否保存于内存之中或者某些数组内的变量是否大于0,从而回避那些不需要执行那些计算代码了。这是在日常的开发工作中基础且重要的易引发性能的问题,所以要重视。

以上所述是小编给大家介绍的JavaScript“尽快失败”的原则实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
js中widow.open()方法使用详解
Jul 30 Javascript
js脚本获取webform服务器控件的方法
May 16 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
微信小程序 animation API详解及实例代码
Oct 08 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
JavaScript实现简单的文本逐字打印效果示例
Apr 12 Javascript
详解angular部署到iis出现404解决方案
Aug 14 Javascript
vue中使用[provide/inject]实现页面reload的方法
Sep 30 Javascript
vscode 调试 node.js的方法步骤
Sep 15 Javascript
微信小程序调用后台service教程详解
Nov 06 Javascript
JavaScript中的Proxy对象
Nov 27 Javascript
jQuery如何解决IE输入框不能输入的问题
Oct 08 #Javascript
微信小程序 canvas API详解及实例代码
Oct 08 #Javascript
微信小程序 animation API详解及实例代码
Oct 08 #Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 #Javascript
Bootstrap Navbar Component实现响应式导航
Oct 08 #Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 #Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
Oct 08 #Javascript
You might like
利用PHP fsockopen 模拟POST/GET传送数据的方法
2015/09/22 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
jQuery动画特效实例教程
2014/08/29 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
js实现图片轮播效果学习笔记
2017/07/26 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python网络爬虫实例讲解
2016/04/28 Python
详解django2中关于时间处理策略
2019/03/06 Python
Tensorflow累加的实现案例
2020/02/05 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
临床医师专业个人自我评价范文
2013/11/07 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
四年大学生活的自我评价范文
2014/02/07 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
2014年乡镇安全生产工作总结
2014/12/02 职场文书
圣诞晚会主持词
2015/07/01 职场文书
2016思想纪律作风整顿心得体会
2016/01/23 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书