JavaScript基础知识点总结:从零开始学习JavaScript(三)

 

 

如果大家感感兴趣也可以去看:

🎉博客主页:阿猫的故乡

🎉系列专栏:JavaScript专题栏

🎉ajax专栏:ajax知识点

🎉欢迎关注:👍点赞🙌收藏✍️留言

学习目标:

掌握循环语句,让程序具备重复执行能力
掌握数组声明及访问的语法
 


学习内容:

循环-for
数组


学习时间:

  • 周一至周五晚上 7 点—晚上9点
  • 周六上午 9 点-上午 11 点
  • 周日下午 3 点-下午 6 点

学习产出:

循环-for

  • • for循环基本使用

目标:掌握for循环重复执行某些代码
1. for循环语法
l 作用
:重复执行代码
l 好处:把声明起始值、循环条件、变化值写到一起,让人一目了然,它是最常使用的循环形式

1. 利用for循环输出1~100岁
2. 求1-100之间所有的偶数和
3. 页面中打印5个小星星
4. for循环的最大价值: 循环数组

目标:掌握for循环重复执行某些代码
2. 退出循环
l continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue
l break 退出整个for循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用
了解:
1. while(true) 来构造“无限”循环,需要使用break退出循环。
2. for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。

for 循环嵌套

需求: 页面中打印出5行5列的星星
分析:
①:利用双重for循环来做
②:外层循环控制打印行,内层循环控制每行打印几个(列)
升级版本:
用户输入行数和列数,打印对应的星星!
 

目标:能说出数组是什么
l 数组:(Array)是一种可以按顺序保存数据的数据类型
l 为什么要数组?
        Ø 思考:如果我想保存一个班里所有同学的姓名怎么办?
        Ø 场景:如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便
 

数组的基本使用

目标:能够声明数组并且能够获取里面的数据
l 1. 声明语法


2.2 数组的基本使用
l 例
l 数组是按顺序保存,所以每个数据都有自己的编号
l 计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推
l 在数组中,数据的编号也叫索引或下标
l 数组可以存储任意类型的数据
 数组的基本使用
l 2. 取值语法
l 例


l 通过下标取数据
l 取出来是什么类型的,就根据这种类型特点来访问

. 一些术语:
Ø 元素:数组中保存的每个数据都叫数组元素
Ø 下标:数组中数据的编号
Ø 长度:数组中数据的个数,通过数组的length属性获得
 

. 遍历数组(重点)

目标:能够遍历输出数组里面的元素
l 用循环把数组中每个元素都访问到,一般会用for循环遍历
l 语法:

 数组求和
需求:求数组 [2,6,1,7, 4] 里面所有元素的和以及平均值
分析:
①:声明一个求和变量 sum。
②:遍历这个数组,把里面每个数组元素加到 sum 里面。
③:用求和变量 sum 除以数组的长度就可以得到数组的平均值。

操作数组

 

在ES6中,有一些新特性可以简化对数组的操作,如下所示:

  1. 扩展运算符(Spread Operator):使用三个点(...)来展开一个数组,可以将一个数组中的元素快速复制到另一个数组中。

    const arr1 = [1, 2, 3];
    const arr2 = [...arr1, 4, 5];
    console.log(arr2); // 输出 [1, 2, 3, 4, 5]
    

  2. Array.from():可以将类数组对象或可迭代对象转换为数组。

    const nodeList = document.querySelectorAll('p');
    const arr = Array.from(nodeList);
    console.log(arr); // 输出包含所有 <p> 元素的数组
    

  3. Array.prototype.find():根据给定的测试函数,返回数组中满足条件的第一个元素,若不存在则返回undefined。

    const arr = [1, 2, 3, 4, 5];
    const result = arr.find(element => element > 3);
    console.log(result); // 输出 4
    

  4. Array.prototype.filter():根据给定的测试函数,返回数组中满足条件的所有元素组成的新数组。

    const arr = [1, 2, 3, 4, 5];
    const result = arr.filter(element => element % 2 === 0);
    console.log(result); // 输出 [2, 4]
    

  5. Array.prototype.map():根据给定的转换函数,将数组中的每个元素进行转换,并返回转换后的新数组。

    const arr = [1, 2, 3];
    const result = arr.map(element => element * 2);
    console.log(result); // 输出 [2, 4, 6]
    

  6. Array.prototype.reduce():根据给定的累加器函数,将数组中的所有元素进行累计计算,并返回最终的计算结果。

    const arr = [1, 2, 3, 4, 5];
    const result = arr.reduce((accumulator, currentValue) => accumulator + currentValue);
    console.log(result); // 输出 15
    

以上是ES6中常用的数组操作方法,可以根据需要使用相应的方法来操作数组。

 操作数组-新增

要在数组中新增元素,你可以使用 push() 方法。这个方法将一个或多个元素添加到数组的末尾,并返回新数组的长度。

例如,假设我们有一个名为 arr 的数组,我们想要在其末尾添加一个元素 element

arr.push(element);

你也可以一次添加多个元素。例如:

arr.push(element1, element2, element3);

这将会在 arr 数组的末尾依次添加 element1element2element3

另外,你也可以使用赋值操作符 = 来新增元素。例如:

arr[arr.length] = element;

这将在 arr 数组的末尾新增一个元素 element

注意:以上两种方法都会修改原数组,而不是创建一个新的数组。如果你希望创建一个新数组并在其中新增元素,可以使用 concat() 方法或者数组解构操作符 ...

 操作数组-删除

要删除数组中的元素,可以使用数组的 splice() 方法。

splice() 方法接受两个参数:

  • 第一个参数是要删除的元素的起始索引。
  • 第二个参数是要删除的元素个数。

以下是一个示例,演示如何删除数组中的元素:

let numbers = [10, 20, 30, 40, 50];// 删除索引为2的元素(30)
numbers.splice(2, 1);console.log(numbers); // [10, 20, 40, 50]

在上述示例中,我们删除了索引为2的元素,即数组中的第3个元素(30)。

请注意,splice() 方法会修改原始数组,因此在使用之前最好先备份原始数组,以防止意外修改。

总结:

1. 想要数组末尾删除1个数据元素利用那个方法?带参数吗?
        Ø arr.pop()
        Ø 不带参数
        Ø 返回值是删除的元素
2. 想要数组开头删除1个数据元素利用那个方法?带参数吗?
        Ø arr.shift()
        Ø 不带参数
        Ø 返回值是删除的元素
3. 想要指定删除数组元素用那个?开发常用吗?有那些使用场景?
        Ø arr.splice(起始位置, 删除的个数)
        Ø 开发很常用,比如随机抽奖,比如删除指定商品等等

  • • 循环嵌套 

 

循环嵌套是指在一个循环内部再嵌套了另一个循环。通过循环嵌套可以实现多层循环的效果,可以在每一次外部循环的迭代过程中,执行内部循环的所有迭代过程。

常见的循环嵌套包括两层、三层等。

例如,下面是一个两层循环嵌套的示例代码,在控制台输出一个九九乘法表:

for (var i = 1; i <= 9; i++) {for (var j = 1; j <= i; j++) {console.log(j + " * " + i + " = " + j*i);}
}

上述代码中,外层循环控制乘法表的行数,内层循环控制每一行的列数,通过循环嵌套可以逐行逐列输出乘法表的结果。

需要注意的是,在使用循环嵌套时,要注意控制内外层循环的迭代次数,以免造成死循环。此外,循环嵌套中的变量命名应尽量避免冲突,以免产生错误或混淆。

综合案例

当然可以!下面是五道关于循环嵌套的练习题:

  1. 打印出一个由数字组成的倒三角形,要求倒三角形的底边长为5。例如:
55555
4444
333
22
1

  1. 打印出一个九九乘法表的倒序,要求只打印出小于等于5的行和列。例如:
5 * 5 = 25
5 * 4 = 20
4 * 4 = 16
5 * 3 = 15
4 * 3 = 12
3 * 3 = 9
5 * 2 = 10
4 * 2 = 8
3 * 2 = 6
2 * 2 = 4
5 * 1 = 5
4 * 1 = 4
3 * 1 = 3
2 * 1 = 2
1 * 1 = 1

  1. 打印出一个正方形矩阵,要求矩阵的边长为4,每个元素为其对应的行索引和列索引的和。例如:
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6

  1. 打印出一个由"*"组成的等腰三角形,要求三角形的高度为7。例如:
      ************************************
*************

  1. 打印出一个菱形,要求菱形的高度为9。例如:
    ****************
*************************

 

答案一下:

 

当然!以下是五道题目的代码答案:

  1. 打印出一个由数字组成的倒三角形,要求倒三角形的底边长为5。
for (let i = 5; i >= 1; i--) {let row = '';for (let j = 1; j <= i; j++) {row += i;}console.log(row);
}

  1. 打印出一个九九乘法表的倒序,要求只打印出小于等于5的行和列。
for (let i = 5; i >= 1; i--) {for (let j = 5; j >= 1; j--) {if (i <= 5 && j <= 5) {console.log(i + ' * ' + j + ' = ' + (i * j));}}
}

  1. 打印出一个正方形矩阵,要求矩阵的边长为4,每个元素为其对应的行索引和列索引的和。
for (let i = 0; i < 4; i++) {let row = '';for (let j = 0; j < 4; j++) {row += (i + j) + ' ';}console.log(row);
}

  1. 打印出一个由"*"组成的等腰三角形,要求三角形的高度为7。
for (let i = 1; i <= 7; i++) {let row = ' '.repeat(7 - i) + '*'.repeat((2 * i) - 1);console.log(row);
}

  1. 打印出一个菱形,要求菱形的高度为9。
for (let i = 1; i <= 5; i++) {let row = ' '.repeat(5 - i) + '*'.repeat((2 * i) - 1);console.log(row);
}
for (let i = 4; i >= 1; i--) {let row = ' '.repeat(5 - i) + '*'.repeat((2 * i) - 1);console.log(row);
}

希望这些代码能够帮助你巩固循环嵌套的概念!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024重新洗牌“IT界”,是谁给它的底气?

​在2023年下半年" IT界"最引发程序员关注的热点话题就是鸿蒙了。 就今年9月25日&#xff0c;从华为发布会宣布明年2024将推出HarmonyOS NEXT版本后&#xff0c;这意味着”鸿蒙不再与android兼容“。鸿蒙将与安卓、ios形成”三足鼎立“之势。 鸿蒙激起千层浪 12月…

Kibana操作ElasticSearch

1、索引操作 1.1、新增索引 a、创建索引默认配置 PUT /索引名称 b、创建索引指定字段类型 put /索引名称/_mapping/typeName {"properties":{"字段名":{"type":"类型", text keyword long short date integer object"index&quo…

2023安洵杯-秦岭防御军wp

reverse 感觉有点点简单## import base64 def ba64_decode(str1_1):mapp "4KBbSzwWClkZ2gsr1qAQu0FtxOm6/iVcJHPY9GNp7EaRoDf8UvIjnL5MydTX3eh"data_1 [0] * 4flag_1 [0] * 3for i in range(32, 127):for y in range(32, 127):for k in range(32, 127):flag_1[0]…

【RocketMQ笔记02】安装RocketMQ可视化工具rocketmq-dashboard

这篇文章&#xff0c;主要介绍如何安装RocketMQ可视化工具rocketmq-dashboard。 目录 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard 1.2、修改配置文件 1.3、打包工程 1.4、启动rocketmq-dashboard 一、RocketMQ可视化界面 1.1、下载rocketmq-dashboard rocketm…

TYPE C 接口知识

1、Type C 概述 Type-C口有4对TX/RX分线&#xff0c;2对USBD/D-&#xff0c;一对SBU&#xff0c;2个CC&#xff0c;另外还有4个VBUS和4个地线。 当Type-C接口仅用作传输DP信号时&#xff0c;则可利用4对TX/RX&#xff0c;从而实现4Lane传输&#xff0c;这种模式称为DPonly模式…

【Leetcode】重排链表、旋转链表、反转链表||

目录 &#x1f4a1;重排链表 题目描述 方法一&#xff1a; 方法二&#xff1a; &#x1f4a1;旋转链表 题目描述 方法&#xff1a; &#x1f4a1;反转链表|| 题目描述 方法&#xff1a; &#x1f4a1;总结 &#x1f4a1;重排链表 题目描述 给定一个单链表 L 的头节…

软件测试/测试开发丨Python 装饰器常见的报错信息、原因和解决方案

Python 装饰器简介 装饰器&#xff08;Decorator&#xff09;是 Python 非常实用的一个语法糖功能。装饰器本质是一种返回值也是函数的函数&#xff0c;可以称之为“函数的函数”。其目的是在不对现有函数进行修改的情况下&#xff0c;实现额外的功能。 在 Python 中&#xf…

C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 接口、抽象与密封

C# 入门基础知识 - C# 接口、抽象与密封 第10节 接口、抽象与密封10.1 接口的声明10.2 接口的实现和继承10.3 显式实现接口10.4 抽象类与抽象方法声明10.5 抽象方法(abstract)方法与虚方法(virtual)方法10.6 密封类与密封方法10.7 接口综合运用实践 更多C#基础知识点可查看&…

ueditor富文本编辑器中图片上传地址配置以及抓取远程图片地址的配置

一&#xff1a;图片上传保存地址配置 打开文件ueditor.php,找到imagePathFormat进行修改即可 一&#xff1a;远程抓取图片配置 打开文件ueditor.config.js,找到catchRemoteImageEnable&#xff0c;取消注释即可

2024年元旦节放假通知

致尊敬的客户以及全体同仁&#xff1a; 旧岁已展千重锦&#xff0c;新年再进百尺竿。在这辞旧迎新之际&#xff0c;易天光通信提前祝您元旦快乐&#xff01;生意兴隆&#xff0c;身体健康&#xff0c;万事如意&#xff01;根据国家法定假期的规定&#xff0c;并结合公司实际情…

使用pycharm虚拟环境和使用conda管理虚拟环境的区别

使用 PyCharm 虚拟环境和使用 Conda 管理虚拟环境有一些区别&#xff0c;主要涉及到环境的创建、依赖管理、跨平台性等方面。以下是一些关键区别&#xff1a; 创建环境&#xff1a; PyCharm 虚拟环境&#xff1a; PyCharm 使用其自己的虚拟环境管理器&#xff08;通常是 venv&a…

开源verilog模拟 iverilog verilator +gtkwave仿真及一点区别

开源的 iverilog verilator 和商业软件动不动几G几十G相比&#xff0c;体积小的几乎可以忽略不计。 两个都比较好用&#xff0c;各有优势。 iverilog兼容性好。 verilator速度快。 配上gtkwave 看波形&#xff0c;仿真工具基本就齐了。 说下基本用法 计数器 counter.v module…

【接口测试】Postman(一)--接口测试知识准备 _

1.0 前言 ​ 应用程序编程接口&#xff08;Application Programming Interface, API&#xff09;是这些年来最流行的技术之一&#xff0c;强大的Web应用程序和领先的移动应用程序都离不开后端强大的API。API技术的应用给系统开发带来了便利&#xff0c;但也对测试人员提出了更高…

Redis主从切换(单点故障)解决源码

1、使用过程&#xff1a; 发布创建channel1消息 redis-cli> PUBLISH channel1 "Hello, world!" redis-cli> SUBSCRIBE channel1 优点&#xff1a; 1、采用Reactor事件单线程去驱动发布订阅事件的&#xff0c;实时性高。 2、从redis架构去思考&#xff0c;拓展哨…

4.vue学习笔记(事件处理+事件参数+事件修饰符)

文章目录 1.事件处理1.1.内联事件处理器 2.事件参数2.1.传参过程中获取Event 3.事件修饰符3.1.阻止默认事件阻止事件冒泡 1.事件处理 我们可以使用v-on指令&#xff08;简写为&#xff09;来监听DOM事件&#xff0c;并在事件触发时执行对应的JavaScript。 用法&#xff1a;v-o…

ubuntu服务器上安装KVM虚拟化

今天想着在ubuntu上来安装一个windwos操作系统&#xff0c;原因是因为我们楼上有几台不错的服务器&#xff0c;但是都是linux系统的。 今天我想着要给同事们搭建一个chatgpt环境&#xff0c;用来开发程序&#xff0c;但是ubuntu上其实也可以安装我嫌麻烦&#xff0c;刚好想折腾…

VMware16 pro 安装openEuler-23.09-x86_64,详细操作流程+详图。

1.环境&#xff1a; win11, vmware16 pro, openEuler-23.09-x86_64-dvd.iso 社区版openEuler 23.09官方下载地址&#xff1a; openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网欧拉操作系统(openEuler, 简称“欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、…

【教学类-35-07】17号的字帖(二)班级字帖“大4”(A4竖版1份)

作品展示 背景需求&#xff1a; 大4班17号孩子练习数字书写&#xff0c;上一次是“17”号&#xff0c;这次是大“4”。 【教学类-35-05】17号的学号字帖&#xff08;A4竖版1份&#xff09;-CSDN博客文章浏览阅读440次&#xff0c;点赞6次&#xff0c;收藏7次。【教学类-35-05…

Vue2从源码角度来回答一些常见的问题

1.请说一下Vue2响应式数据的理解&#xff08;先知道基本的问题在哪里&#xff0c;源码的角度来回答&#xff0c;用的时候会有哪些问题&#xff09; 可以监控一个数据的修改和获取操作。针对对象格式会给每个对象的属性进行劫持 Object.defineProperty 源码层面 initData ->…

在香橙派5 Plus上搭建Gitlab

作为一个码农&#xff0c;一定知道Github这个最大的成人交友网站。但是Github在国内不稳定&#xff0c;经常拉不下来代码&#xff0c;也就无法推送代码。为了更方便的使用&#xff0c;顺便更好地了解Git工具&#xff0c;决定在香橙派5 Plus上搭建一个属于自己的代码仓库。 1、…