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月…

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…

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

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

2024年元旦节放假通知

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

开源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;但也对测试人员提出了更高…

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、…

k8s的二进制部署: 源码包部署-----node节点部署

服务器IP软件包k8s--master0120.0.0.61kube-aplserver&#xff0c;kube-controer-manager&#xff0c;kube-scheduler&#xff0c;etcdk8s--master0220.0.0.62kube-controer-manager&#xff0c;kube-schedulernode节点0120.0.0.62kubelet&#xff0c;kube-proxy&#xff0c;et…

【问题系列】同时管理多版本node方案

目录 一、问题描述 二、解决方案 三、详细步骤 3.1 安装NVM&#xff1a; 3.2 运行NVM 3.3 安装Node.js 3.4 切换Node.js版本 3.5 验证安装&#xff1a; 四、拓展 4.1 设置默认 Node.js 版本 4.2 列出已安装的 Node.js 版本 4.3 其他命令介绍 一、问题描述 需要运行…

C#实现串口通讯

1、官网下载Launch Virtual Serial Port Driver Virtual Serial Port Driver - create and emulate virtual COM port&#xff0c;开个虚拟串口&#xff1a; Pair模式&#xff08;一对&#xff0c;成双成对的意思&#xff0c;就是COM1向COM2传或者COM2向COM1,好比两台机器的CO…

软件工程期末复习

● 用例&#xff1a;借书 ●参与者&#xff1a;管理员,借阅者 ●操作流&#xff1a; ① 管理员进入图书借阅界面&#xff0c;用例开始。 ② 系统要求输入借阅者的借书证编码。 ③系统检验借书证编码,如果正确,则显示借阅者的信息。 A1&#xff1a;借书证编码有错。 A2: 如果该借…

巨量引擎大众消费发布“十佳好课”榜单:涵盖五大行业 助力商家进阶

2023&#xff0c;中国消费市场出现温和复苏态势&#xff0c;在不确定市场环境下&#xff0c;大众消费商家如何用好科学营销手段&#xff0c;实现确定性增长?如何紧跟平台趋势&#xff0c;把握生意增长先机? 为了给商家持续提供前沿适配的营销方法、解决实际生意卡点&#xff…

MYSQL一一函数一一字符串函数

嘿嘿大家好我回来啦&#xff0c;今天我们要学习的是MYSQL中的函数&#xff0c;函数呢我们又分为字符串函数&#xff0c;数值函数&#xff0c;日期函数&#xff0c;流程函数来介绍&#xff0c;今天重点介绍字符串函数(从小题到案例方便你们更加深入的理解) 函数指的是一段可以直…