JavaScript 学习笔记(JS进阶 Day1)

本文详细介绍了JavaScript的局部作用域、全局作用域、闭包、变量提升、函数参数、箭头函数、数组和对象的解构赋值,以及forEach和filter方法的使用。这些内容是JavaScript进阶学习的重要组成部分。

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

「写在前面」

本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容:
1. JavaScript 学习笔记(Day1)
2. JavaScript 学习笔记(Day2)
3. JavaScript 学习笔记(Day3)
4. JavaScript 学习笔记(Day4)
5. JavaScript 学习笔记(Day5)
6. JavaScript 学习笔记(WEB APIs Day1)
7. JavaScript 学习笔记(WEB APIs Day2)
8. JavaScript 学习笔记(WEB APIs Day3)
9. JavaScript 学习笔记(WEB APIs Day4)
10. JavaScript 学习笔记(WEB APIs Day5)
11. JavaScript 学习笔记(WEB APIs Day6)


目录

  • 1 作用域
  • 2 函数进阶
  • 3 解构赋值
  • 4 综合案例

JavaScript进阶阶段安排:

P152:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=152

1 作用域

1.1 局部作用域

P153:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=153

  • 作用域(scope)规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问

  • 作用域分为:

    • 局部作用域
    • 全局作用域

局部作用域分为函数作用域和块作用域。

1. 函数作用域:

在函数内部声明的变量只能在函数内部被访问,外部无法直接访问。

<script>
function getSum() {
// 函数内部是函数作用域属于局部变量
const num = 10
}
console.log(num) // 此处报错,函数外部不能使用局部作用域变量
</script>

总结:

  1. 函数内部声明的变量,在函数外部无法被访问
  2. 函数的参数也是函数内部的局部变量
  3. 不同函数内部声明的变量无法互相访问
  4. 函数执行完毕后,函数内部的变量实际被清空了

2. 块作用域:

在 JavaScript 中使用 { } 包裹的代码称为代码块,代码块内部声明的变量外部将【有可能】无法被访问。

for ( let t = 1; t<= 6; t++) {
   
// t 只能在该代码块中被访问
console.log(t) // 正常
}
// 超出了 t 的作用域
console.log(t) // 报错

总结:

  1. let 声明的变量会产生块作用域,var 不会产生块作用域
  2. const 声明的常量也会产生块作用域
  3. 不同代码块之间的变量无法互相访问
  4. 推荐使用 let 或 const

1.2 全局作用域

<script> 标签.js 文件 的最外层就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。

全局作用域中声明的变量,任何其它作用域都可以被访问

<script>
// 全局作用域下声明了num变量
const num = 10
function fn() {
// 函数内部可以使用全局作用域的变量
console.log(num)
}
</script>

注意:

  1. 为 window 对象动态添加的属性默认也是全局的,不推荐!
  2. 函数中未使用任何关键字声明的变量为全局变量,不推荐!!!
  3. 尽可能少的声明全局变量,防止全局变量被污染

1.3 作用域链

作用域链本质上是底层的变量查找机制

  • 在函数被执行时,会 优先查找当前函数作用域中查找变量
  • 如果当前作用域查找不到则会依次 逐级查找父级作用域直到全局作用域

总结:

  1. 嵌套关系的作用域串联起来形成了作用域链
  2. 相同作用域链中按着从小到大的规则查找变量
  3. 子作用域能够访问父作用域,父级作用域无法访问子级作用域

1.4 JS垃圾回收机制

P154:https://www.bilibili.com/video/BV1Y84y1L7Nn?p=154

1. 什么是垃圾回收机制?

垃圾回收机制(Garbage Collection) 简称 GC:JS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收。

2.内存的生命周期

JS环境中分配的内存, 一般有如下生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TigerZ 生信宝库

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

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

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

打赏作者

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

抵扣说明:

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

余额充值