iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何通过循环优化JavaScript 程序
  • 404
分享到

如何通过循环优化JavaScript 程序

2024-04-02 19:04:59 404人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关如何通过循环优化javascript 程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于提高 JavaScript 程序的性能这个问题,最简单同

这篇文章给大家分享的是有关如何通过循环优化javascript 程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

对于提高 JavaScript 程序的性能这个问题,最简单同时也是很容易被忽视的方法就是学习如何正确编写高性能循环语句。本文将会帮你解决这个问题。

我们将看到 JavaScript 中主要的循环类型,以及如何针对它们进行高效编码。

现在开始!

循环性能

谈到循环性能,争论的焦点始终会集中到关于应该使用哪种循环,哪个是速度最快、性能最好的?事实上,在 JavaScript 提供的四种循环类型中,只有一种比其他循环慢得多 ——  for-in 循环。 对循环类型的选择应基于你的需求而不是性能问题。

有两个主要因素有助于改善循环性能 —— 每次迭代完成的工作和迭代次数。

在下面的内容中,我们将会看到通过对这两点的优化,可以对循环的整体性能产生积极的影响。

For 循环

在 ECMA-262(定义JavaScript的基本语法和行为的规范)第三版中,定义了四种循环类型。第一个是标准的 for 循环,它与其他类 C 语言的语法相同:

for (var i = 0; i < 10; i++){
//循环体
}

这可能是最常用的 JavaScript 循环结构。要了解应该怎样对其进行优化,需要先进行一些分析。

解析

for 循环由四部分组成:初始化,预测试条件,循环体和后执行。它的工作方式如下:首先,执行初始化代码(var i = 0;)。然后是预测试条件(i <10;)。如果预测试条件的计算结果为 true,则执行循环体。之后运行后执行代码(i ++)。

优化

要优化循环中的工作量,第一步是最小化对象成员和数组项查找的数量。
还可以通过反转顺序来提高循环的性能。在 JavaScript 中,反转循环对循环的性能提升不大,除非你消除了额外的操作。

// 原始循环
for (var i = 0; i < items.length; i++){
process(items[i]);
}
// 最小化属性查找
for (var i = 0, len = items.length; i < len; i++){
process(items[i]);
}
// 最小化属性查找并反序
for (var i = items.length; i--; ){
process(items[i]);
}

While 循环

第二种是 while 循环。下面是一个简单的预测试循环,由预测试条件和循环体组成。

var i = 0;
while(i < 10){
//循环体
i++;
}

解析

如果预测试条件的计算结果为 true,则执行循环体。如果不是 —— 它就会被跳过。每个 while 循环都可以用 for 替换,反之亦然。

优化

// 原始循环
var j = 0;
while (j < items.length){
process(items[j++]);
}
// 最小化属性查找
var j = 0,
count = items.length;
while (j < count){
process(items[j++]);
}
// 最小化属性查找和反序
var j = items.length;
while (j--){
process(items[j]);
}

Do-While 循环

do-while 是第三种循环,它是 JavaScript 中唯一的后测试循环。由循环体和后测试条件组成:

var i = 0;
do {
//循环体
} while (i++ < 10);

解析

在这种类型的循环中,循环体总是至少执行一次。然后评估测试后的条件,如果它是true,则执行另一个循环周期。

优化

// 原始循环
var k = 0;
do {
process(items[k++]);
} while (k < items.length);
// 最小化属性查找
var k = 0,
num = items.length;
do {
process(items[k++]);
} while (k < num);
// 最小化属性查找和反序
var k = items.length - 1;
do {
process(items[k]);
} while (k--);

For-In 循环

最后一种是 for-in 循环。它有一个非常特殊的用途 —— 枚举 JavaScript 对象的命名属性。 它的语法如下:

for (var prop in object){
//loop body
}

解析

它的名称与 for 循环类似。但是工作方式完全不同。而这种差异使它比另外三种循环慢得多,后者具有相同的性能特征,所以争论哪个循环最快是没有用的。

每次循环执行时,变量 prop 会得到 object 的一个属性。它将会不断执行,直到返回所有属性为止。这些是对象自身的以及通过其原型链继承的属性。

注意事项

永远不要用“ for-in ”来迭代数组成员。

这种循环的每次迭代都会在实例或原型上进行属性查找,这使得 for-in 循环比其它循环要慢得多。对于相同次数的迭代,可能会比其它循环慢七倍。

结论

for , while 和 do-while 循环都有类似的性能特征,因此没有哪种类型比其他的更快或更慢。

避免使用 for-in 循环,除非你需要对大量未知对象属性进行迭代。

提高循环性能的最佳方法是减少每次迭代完成的工作量并减少循环迭代次数。

感谢各位的阅读!关于“如何通过循环优化JavaScript 程序”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 如何通过循环优化JavaScript 程序

本文链接: https://www.lsjlt.com/news/75245.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何通过循环优化JavaScript 程序
    这篇文章给大家分享的是有关如何通过循环优化JavaScript 程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于提高 JavaScript 程序的性能这个问题,最简单同...
    99+
    2022-10-19
  • 如何通过并发编程在Linux环境下优化Java程序:面试攻略。
    如何通过并发编程在Linux环境下优化Java程序:面试攻略 如果你正在为即将到来的Java面试而苦恼,那么你一定需要了解如何通过并发编程在Linux环境下优化Java程序。在本文中,我们将向你介绍一些必备的知识和技能,以及如何在面试中展示...
    99+
    2023-06-24
    linux 面试 并发
  • JavaScript如何通过for-in循环检查对象的属性
    这篇文章主要介绍了JavaScript如何通过for-in循环检查对象的属性,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。通过for-in循...
    99+
    2022-10-19
  • python如何实现循环优化
    这篇文章给大家分享的是有关python如何实现循环优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。循环优化# 不推荐写法。代码耗时:6.7秒def computeSum(size: ...
    99+
    2023-06-27
  • Go通过不变性优化程序详解
    目录正文减少对全局或外部状态的依赖仅导出结构体的函数,而不是成员变量在函数中使用复制值,而不是使用指针总结正文 不变性的概念非常简单,在您创建结构体后,就永远无法修改它。这个概念听起...
    99+
    2022-11-11
  • 如何通过优化程序性能来提高Go语言程序的效率
    随着互联网技术的发展,我们的应用程序需要不断地追求更好的性能和效率,特别是在高并发、大数据等场景下,Go语言逐渐成为了开发高效程序的首选语言。但是,随着程序规模逐渐扩大,会面临着性能瓶颈的问题。为了解决这个问题,接下来我们将深入讨论如何通过...
    99+
    2023-05-14
  • 如何通过Shell脚本优化Go程序的加载速度?
    Go是一种快速、高效、可靠的编程语言,它的特点是具有高并发性、良好的内存管理、简单易学等优点。然而,在Go程序运行的时候,程序加载速度较慢是一个普遍存在的问题。这主要是因为Go程序在编译的时候需要链接大量的库,而这些库文件的加载会消耗大量...
    99+
    2023-06-13
    load 面试 shell
  • 微信小程序如何实现循环及嵌套循环
    这篇文章主要为大家展示了“微信小程序如何实现循环及嵌套循环”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现循环及嵌套循环”这篇文章吧。微信小程序...
    99+
    2022-10-19
  • Java如何通过循环对比查找最大值
    这篇文章将为大家详细讲解有关Java如何通过循环对比查找最大值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。循环对比循环对比的执行流程如下图所示:从上图可以看出,循环对比...
    99+
    2022-10-19
  • 通过Golang的同步机制优化程序性能
    在Golang中,可以通过使用同步机制来优化程序的性能。以下是一些常见的同步机制和优化技巧:1. 使用互斥锁:Golang提供了sy...
    99+
    2023-10-08
    Golang
  • 如何优化JavaScript程序的性能
    如何优化JavaScript程序的性能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。避免全局查找在一个函数中会用到全局对象存储为局部变量来减少...
    99+
    2022-10-19
  • python双重for循环太慢如何优化
    如果双重for循环太慢,可以尝试以下优化方法: 使用NumPy库:NumPy是一个强大的Python科学计算库,它可以对数组进行...
    99+
    2023-10-24
    python
  • 如何通过Java容器优化编程算法?
    Java是一种高级编程语言,广泛应用于各种计算机程序设计。编写高效的Java算法是每个Java程序员的必修课程之一。Java容器是Java编程中常用的一种数据结构,它能够提供快速的数据访问和高效的算法实现。在本文中,我们将介绍如何通过Jav...
    99+
    2023-07-10
    编程算法 容器 数据类型
  • 如何通过Git API优化PHP开发流程?
    Git是一款非常流行的分布式版本控制工具,它能够有效地协助我们管理代码,协作开发,以及进行版本控制。与此同时,Git API也提供了丰富的功能来帮助我们优化PHP开发流程。本文将介绍如何通过Git API来优化PHP开发流程,以及如何在PH...
    99+
    2023-08-14
    开发技术 git api
  • HTML5如何通过Vedio标签实现视频循环播放
    小编给大家分享一下HTML5如何通过Vedio标签实现视频循环播放,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!要实现网页播放视频在HTML5以前是通过<e...
    99+
    2023-06-09
  • 如何通过Shell命令优化ASP编程算法?
    Shell命令是Linux系统下非常强大的命令行工具。它可以帮助我们在编程中提高效率,同时也能够优化我们的ASP编程算法。在本文中,我们将介绍如何通过Shell命令来优化ASP编程算法。 一、Shell命令的基本使用 在开始之前,我们需要了...
    99+
    2023-08-27
    编程算法 响应 shell
  • 怎么通过优化程序性能来提高Go语言程序的效率
    本文小编为大家详细介绍“怎么通过优化程序性能来提高Go语言程序的效率”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么通过优化程序性能来提高Go语言程序的效率”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、使...
    99+
    2023-07-05
  • JavaScript如何实现异步任务循环顺序执行
    今天小编给大家分享一下JavaScript如何实现异步任务循环顺序执行的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。需求场景...
    99+
    2023-07-05
  • 电脑中如何通过优化注册表缩短应用程序响应时间
    这篇文章给大家分享的是有关电脑中如何通过优化注册表缩短应用程序响应时间的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1、按 Win + R 组合键,打开运行,或者按桌面左下角的开始菜单,在打开的菜单项...
    99+
    2023-06-27
  • 如何在实时环境中优化ASP应用程序?
    ASP(Active Server Pages)是一种常用的Web开发技术,它可以生成动态Web页面。然而,当ASP应用程序在实时环境中运行时,可能会遇到一些性能瓶颈。在本文中,我们将探讨如何在实时环境中优化ASP应用程序。 使用缓存 ...
    99+
    2023-08-10
    apache 容器 实时
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作