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 相关文章推荐
JavaScript的9个陷阱及评点分析
May 16 Javascript
jquery validate 自定义验证方法介绍 日期验证
Feb 27 Javascript
jQuery实现动态添加和删除一个div
Aug 12 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
Dec 01 Javascript
js+css实现回到顶部按钮(back to top)
Mar 02 Javascript
JS 日期与时间戮相互转化的简单实例
Jun 22 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
Angular2管道Pipe及自定义管道格式数据用法实例分析
Nov 29 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
vue使用Proxy实现双向绑定的方法示例
Mar 20 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 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
常用星际术语索引(新手指南)
2020/03/04 星际争霸
介绍一些PHP判断变量的函数
2012/04/24 PHP
解析posix与perl标准的正则表达式区别
2013/06/17 PHP
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
2007/04/12 Javascript
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
2012/11/08 Javascript
浅谈Jquery为元素绑定事件
2015/04/27 Javascript
jquery实现用户打分评分特效
2015/05/28 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
python Django批量导入数据
2016/03/25 Python
python中解析json格式文件的方法示例
2017/05/03 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
python如何生成各种随机分布图
2018/08/27 Python
解决Django连接db遇到的问题
2019/08/29 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
纯CSS实现的大小渐变、渐远效果
2014/04/15 HTML / CSS
专业幼师实习生自我鉴定范文
2013/12/08 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
个人求职信范文分享
2014/01/31 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
个人公开承诺书
2014/03/28 职场文书
给公司的建议书范文
2014/05/13 职场文书
保卫工作个人总结
2015/03/03 职场文书
物业保安辞职信
2015/05/12 职场文书
初中班主任工作总结2015
2015/05/13 职场文书
Python实现科学占卜 让视频自动打码
2022/04/09 Python