黑马pink老师 2023JavaScript 第三天笔记

文章详细介绍了JavaScript中的for循环、if...else与switch...case语句的区别和应用场景,强调了循环的3要素——起始值、变化量和终止条件。此外,还深入讲解了数组的定义、访问、遍历以及push、pop、shift、splice等操作方法,并提到了冒泡排序和数组的sort()方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍–P34 for循环

if 多分支语句和 switch的区别:

  1. 共同点

    • 都能实现多分支选择, 多选1
    • 大部分情况下可以互换
  2. 区别:

    • switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,通常用于范围判断(大于,等于某个范围)
    • switch 语句进行判断后直接执行到程序的语句,效率更高,而if…else语句有几种判断条件,就得判断多少次
    • switch 一定要注意必须是 === 全等,一定注意数据类型,同时注意break否则会有穿透效果
    • 结论:
      • 当分支比较少时,if…else语句执行效率高
      • 当分支比较多时,switch语句执行效率高,而且结构更清晰

for 语句

for 是 JavaScript 提供的另一种循环控制的话句,它和 while 只是语法上存在差异。

作用:重复执行代码

好处:把声明起始值、循环条件、变化值写到一起,让人一目了然,它是最常使用的循环形式

语法

for(变量起始值;终止条件;变量变化量){
	循环体代码
}

for语句的基本使用

  1. 实现循环的 3 要素

  2. 变化量和死循环,for 循环和 while 一样,如果不合理设置增量和终止条件,便会产生死循环。

  3. 跳出和终止循环

结论:

  • JavaScript 提供了多种语句来实现循环控制,但无论使用哪种语句都离不开循环的3个特征,即起始值、变化量、终止条件
  • 起始值、变化量、终止条件,由开发者根据逻辑需要进行设计,规避死循环的发生
  • 当如果明确了循环的次数的时候推荐使用for循环,当不明确循环的次数的时候推荐使用while循环

退出循环–P36 退出循环

continue退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue

break 退出整个for循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用

了解

while(true) 来构造“无限”循环,需要使用break退出循环。

for(;;) 也可以来构造“无限”循环,同样需要使用break退出循环。

循环嵌套-P37 循环嵌套

实际上 JavaScript 中任何一种循环语句都支持循环的嵌套,如下代码所示:
循环嵌套

记住,外层循环循环一次,里层循环循环全部,一个循环里再套一个循环,一般用在for循环里

数组-P40 数组的基本使用

数组是什么?

数组: (Array)是一种可以按顺序保存数据的数据类型

使用场景: 如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便

数组的基本使用

定义数组和数组单元

声明语法

字面量声明数组
let 数组名 = {数据1, 数据2, ..., 数据n}
构造函数声明
let arr = new Array(数据1, 数据2, ..数据n)

通过 [] 定义数组,数据中可以存放真正的数据,我们这些数据称为数组元素,数组单元之间使用英文逗号分隔

访问数组和数组索引

取值语法

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

使用数组存放数据并不是最终目的,关键是能够随时的访问到数组中的数据(元素)。其实 JavaScript 为数组中的每一个数据元素都编了号,通过数据元素在数组中的编号便可以轻松访问到数组中的数据元素了

我们将数据单元在数组中的编号称为索引值,也有人称其为下标

索引值实际是按着数据单元在数组中的位置依次排列的,注意是从 0 开始的

数据单元值类型

数组做为数据的集合,它的元素值可以是任意数据类型

数组长度属性
数据名.length

重申一次,数组在 JavaScript 中并不是新的数据类型,它属于对象类型。

遍历数组

用循环把数组中每个元素都访问到,一般会用for循环遍历

语法

for(let i = 0; i < 数据名.length; i++){
    数组名[i]
}

操作数组–P42 数组操作-修改

数组本质是数据集合, 操作数据无非就是 增 删 改 查 语法

数组做为对象数据类型,不但有 length 属性可以使用,还提供了许多方法:

  1. push 动态向数组的尾部添加一个单元
  2. unshit 动态向数组头部添加一个单元
  3. pop 删除最后一个单元
  4. shift 删除第一个单元
  5. splice 动态删除任意单元

使用以上4个方法时,都是直接在原数组上进行操作,即成功调任何一个方法,原数组都跟着发生相应的改变。并且在添加或删除单元时 length 并不会发生错乱

查询数组数据

数组[下标] 或者我们称为访问数组数据

重新赋值

数组[下标] = 新值

数组添加新的数据–P43 数组操作-新增

arr.push(新增的内容)

数组.push(新增的内容) 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度

语法arr.push(元素1, ..., 元素n)

arr.unshift(新增的内容)

arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度

语法arr.unshift(元素1, ..., 元素n)

删除数组中数据–P45 数组操作-删除

arr.pop()

数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值

语法arr.pop()

arr.shift()

数组. shift() 方法从数组中删除第一个元素,并返回该元素的值

语法arr.shift()

arr.splice(操作的下标,删除的个数)

数组. splice() 方法 删除指定元素

语法

arr.splice(start, deleteCount)
arr.splice(起始位置, 删除几个元素)

注释

  • start 起始位置:

索引号 指定修改的开始位置(从0计数)

  • deleteCount:

表示要移除的数组元素的个数

可选的。 如果省略则默认从指定的起始位置删除到最后

数组排序-P48 了解冒泡排序

数组. sort() 方法可以排序

语法

//升序排列
数组名.sort(function(a, b){
    return a - b
})
//降序排列
数组名.sort(function(a, b){
    return b - a
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ying英子同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值