JavaScript中for循环的几种写法与效率总结

yizhihongxing

以下是详细的攻略:

JavaScript中for循环的几种写法与效率总结

1. for循环基本语法

for (let i = 0; i < length; i++) {
  // 循环体
}

其中,let i = 0 表示初始化一个变量 i ,初始值为 0i < length 表示循环条件,当 i 小于 length 时,执行循环体; i++ 表示每次循环后, i 的值增加1。

2. for...in 循环

for...in 循环用于遍历对象的属性名,语法如下:

for (let key in obj) {
  // 循环体
}

其中, key 表示对象的属性名, obj 表示要遍历的对象。

示例:

const obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
  console.log(key, obj[key]);
}

运行结果为:

"a" 1
"b" 2
"c" 3

3. for...of 循环

for...of 循环用于遍历可迭代对象(例如数组、字符串、Map、Set 等),语法如下:

for (let item of iterable) {
  // 循环体
}

其中, item 表示可迭代对象的每个项, iterable 表示要遍历的可迭代对象。

示例:

const arr = [1, 2, 3];
for (let item of arr) {
  console.log(item);
}

运行结果为:

1
2
3

4. forEach 循环

forEach 循环用于遍历数组,语法如下:

array.forEach(function(item, index, array) {
  // 循环体
});

其中, item 表示数组的每个项, index 表示当前项在数组中的索引, array 表示要遍历的数组。

示例:

const arr = [1, 2, 3];
arr.forEach((item, index) => {
  console.log(index, item);
});

运行结果为:

0 1
1 2
2 3

5. for...in 与 for...of 的效率比较

在遍历数组或类数组对象(例如 arguments 对象)时, for...in 循环既可以遍历数组的下标,也可以遍历数组的原型属性,所以不建议使用 for...in 循环遍历数组。而 for...of 循环只能遍历数组元素,不会遍历原型属性,效率比 for...in 循环高。

示例:

const arr = [1, 2, 3];
arr.foo = 'bar';

for (let key in arr) {
  console.log(key); // 输出 0, 1, 2, "foo"
}

for (let item of arr) {
  console.log(item); // 输出 1, 2, 3
}

总结

  • for 循环适用于任何类型的循环,特别是在需要前进或后退的循环(如二分查找,或从尾部开始循环)时。
  • for...in 循环用于遍历对象的属性名,不适用于遍历数组。
  • for...of 循环用于遍历可迭代对象,特别适用于遍历数组。

使用时应根据需要灵活选择。以上就是关于 JavaScript 中 for 循环的几种写法与效率总结的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript中for循环的几种写法与效率总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • ajax技术教程基础

    关于“ajax技术教程基础”的完整攻略,下面是我整理的内容。 什么是Ajax Ajax全称 Asynchronous JavaScript And XML,翻译过来是异步的JavaScript和XML。它实际上是一种在浏览器端使用 JS 对 DOM 进行操作的技术。使用 Ajax 技术可以在不刷新整个页面的情况下更新部分网页内容,从而提高网页的用户体验。 A…

    JavaScript 2023年6月11日
    00
  • javascript函数以及基础写法100多条实用整理

    JavaScript函数是一段可以被反复调用执行的代码,这种代码的主要作用是完成一个独立的功能。JavaScript函数具有很高的可重用性和灵活性,常被用来封装一些特定的处理逻辑以便于在需要的时候调用。接下来将为大家介绍JavaScript函数的基础写法,包括参数、返回值、作用域、闭包等内容。 Function基础写法 无参函数 无参函数即不接受任何参数的函…

    JavaScript 2023年5月18日
    00
  • 深入了解JavaScript 的 WebAssembly

    深入了解JavaScript 的 WebAssembly攻略 WebAssembly简介 WebAssembly是一种为Web设计的全新底层虚拟机。它是一种二进制格式,是为一些可以编译为WebAssembly的语言所设计的。WebAssembly可以提供比JavaScript更好的性能和更高的安全性。 WebAssembly的使用 1. JavaScript…

    JavaScript 2023年5月19日
    00
  • JS中artdialog弹出框控件之提交表单思路详解

    下面详细讲解 “JS中artdialog弹出框控件之提交表单思路详解” 的攻略。 1. artDialog 弹出框控件 artDialog 是一款轻量级、可定制、无依赖、模块化的 JavaScript 弹出框控件。它能够实现在网页中弹出各种对话框,包括提示框、确认框、输入框以及自定义模板等等。artDialog 的优点在于易用、功能强大、配置灵活,同时还能够…

    JavaScript 2023年6月10日
    00
  • JavaScript学习小结(一)——JavaScript入门基础

    JavaScript学习小结(一)——JavaScript入门基础 JavaScript是一种用于Web开发的脚本语言,主要用于增强网页的交互性和动态性。本篇文章将为初学者介绍JavaScript的入门基础。 语法结构 JavaScript代码通常嵌入在HTML文件中,可以使用<script>标签来定义JS代码块。JavaScript的语法结构包…

    JavaScript 2023年5月17日
    00
  • HTML5安全风险之Web Worker攻击详解

    HTML5安全风险之Web Worker攻击详解 什么是Web Worker? Web Worker是HTML5新增的一个功能,可以在后台线程中执行JavaScript脚本,而不会阻塞UI线程。Web Worker的主要应用场景是处理一些耗时的计算任务,如数据处理、图像处理等。 Web Worker的基本用法 在主线程中创建Web Worker对象: var…

    JavaScript 2023年5月28日
    00
  • JavaScript中作用域链的概念及用途讲解

    作用域链的概念及用途讲解 在 JavaScript 中,每个函数都拥有自己的作用域(scope),也就是变量和函数的可访问范围。当函数在执行的时候,会先在自己的作用域中查找变量和函数,如果找不到,就会沿着作用域链向上逐级查找,直到找到为止。 作用域链的概念是指多个嵌套的作用域形成的查找链,它的顶端是全局作用域,底端是当前函数的作用域。 作用域链的主要作用是为…

    JavaScript 2023年6月10日
    00
  • 详解js界面跳转与值传递

    关于“详解js界面跳转与值传递”的攻略,我们可以分为以下几个部分: 1. 基本的页面跳转方式 在Web应用开发中,实现页面跳转是一个非常常见的需求。在JavaScript中,我们可以使用location对象来实现页面跳转。下面是示例代码: location.href = "http://www.example.com"; // 使用hre…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部