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

 更新时间:2016年10月08日 10:10:45   作者:画个女孩陪着我  
我第一次听说编码原则中有“尽快失败”这一条时,觉得很奇怪,为什么代码要失败?应该成功才对呀。下面小编通过实例代码给大家介绍js 尽快失败的原则,一起看看吧

我第一次听说编码原则中有“尽快失败”这一条时,觉得很奇怪,为什么代码要失败?应该成功才对呀。但事实上,当代码在遇到错误的时候应该尽快的终止。为了检测各种状态,我们需要频繁的创建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实现五星评价代码(源码下载)

    大家在淘宝购物之后,都会对卖家的服务进行评论,那么五星评价代码是怎么实现的呢?下面小编给大家介绍基于Javascript实现五星评价代码,有需要的朋友可以参考下
    2015-08-08
  • 详解TypeScript中type与interface的区别

    详解TypeScript中type与interface的区别

    在写 ts 相关代码的过程中,总能看到 interface 和 type 的身影。它们的作用好像都一样的,相同的功能用哪一个都可以实现,也都很好用,所以也很少去真正的理解它们之间到底有啥区别,因此本文将详细讲解二者的区别,需要的可以参考一下
    2022-04-04
  • JavaScript图像放大镜效果实现方法详解

    JavaScript图像放大镜效果实现方法详解

    这篇文章主要介绍了JavaScript图像放大镜效果实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • js不能获取隐藏的div的宽度只能先显示后获取

    js不能获取隐藏的div的宽度只能先显示后获取

    js不能获取隐藏div的的宽度,现在的办法是先将其显示出来,再获取其宽度,计算位置,下面的示例,大家可以参考下
    2014-09-09
  • webpack-dev-server原理解析及跨域解决方法

    webpack-dev-server原理解析及跨域解决方法

    这篇文章主要介绍了webpack-dev-server原理解析及跨域解决方法,需要的朋友可以参考下
    2024-01-01
  • 前端TypeScript时间格式化函数举例详解

    前端TypeScript时间格式化函数举例详解

    这篇文章主要介绍了前端TypeScript时间格式化函数的相关资料,包括日期格式化formatDate、获取周数getWeek、相对时间格式化formatPast、时间问候语formatAxis以及日期时间格式化parseTime和parseDate,每个方法都有详细的参数说明和示例,需要的朋友可以参考下
    2025-02-02
  • MvcPager分页控件 适用于Bootstrap

    MvcPager分页控件 适用于Bootstrap

    这篇文章主要为大家详细介绍了MvcPager分页控件,修改后适用于Bootstrap,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 基于javascript实现放大镜特效

    基于javascript实现放大镜特效

    这篇文章主要为大家详细介绍了基于javascript实现放大镜特效,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 利用JavaScript模拟京东按键输入功能

    利用JavaScript模拟京东按键输入功能

    这篇文章主要给大家介绍了关于如何利用JavaScript模拟京东按键输入功能的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • JS中数组重排序方法

    JS中数组重排序方法

    在数组中有两个可以用来直接排序的方法,分别是reverse()和sort()。下面通过本文给大家详细介绍,对js 数组重排序相关知识感兴趣的朋友一起看看吧
    2016-11-11

最新评论