JavaScript笔记进阶篇01——作用域、箭头函数、解构赋值

黑马程序员视频地址:

黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source=0a2d366696f87e241adc64419bf12cab&spm_id_from=333.788.videopod.episodes&p=152

目录

作用域

局部作用域

函数作用域

块作用域

全局作用域

作用域链

JS垃圾回收机制

什么是垃圾回收机制?

内存的生命周期

拓展------算法说明

引用计数法

标记清除法

闭包

基本格式

闭包的应用

变量提升

函数进阶

函数提升

函数参数

[动态参数 argument](#动态参数 argument)

剩余参数

展开运算符

应用

与剩余参数区分

箭头函数

基本写法

写法一:基本写法

写法二:只有一个参数时,小括号可以省略

[写法三:如果函数体只有一行代码,可以写到一行上,并且无需写 return 直接返回值](#写法三:如果函数体只有一行代码,可以写到一行上,并且无需写 return 直接返回值)

写法四:加括号的函数体返回对象字面量表达式

箭头函数参数

箭头函数this

解构赋值

数组解构

基本语法

分号的添加

变量多,值少

防止有undefined,设置默认值

变量少,值多

利用剩余参数解决

按需导入,忽略某些返回值

支持多维数组的结构

对象解构

基本语法

给新的变量名赋值

数组对象解构

多级对象解构

[遍历数组 forEach 方法(重点)](#遍历数组 forEach 方法(重点))

[筛选数组 filter 方法(重点)](#筛选数组 filter 方法(重点))


作用域

局部作用域

函数作用域


块作用域


全局作用域


作用域链


JS垃圾回收机制

什么是垃圾回收机制?


内存的生命周期


拓展------算法说明


引用计数法

标记清除法


闭包


基本格式


闭包的应用

每个变量内部的值是独立计算的,即fun_a和fun_b内部的 i 值各自单独计算


变量提升


函数进阶

函数提升


函数参数


动态参数 argument


剩余参数


展开运算符


应用

与剩余参数区分

箭头函数


基本写法

写法一:基本写法

写法二:只有一个参数时,小括号可以省略

写法三:如果函数体只有一行代码,可以写到一行上,并且无需写 return 直接返回值

写法四:加括号的函数体返回对象字面量表达式

因为对象与箭头函数都是大括号,因此要在对象的大括号外面加个小括号


箭头函数参数


箭头函数this


解构赋值


数组解构

基本语法


分号的添加


变量多,值少


防止有undefined,设置默认值

变量少,值多


利用剩余参数解决

按需导入,忽略某些返回值


支持多维数组的结构


对象解构

基本语法


给新的变量名赋值


数组对象解构


多级对象解构


遍历数组 forEach 方法(重点)


筛选数组 filter 方法(重点)

相关推荐
晴殇i1 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
BER_c2 小时前
前端权限校验最佳实践:一个健壮的柯里化工具函数
前端·javascript
敲敲敲敲暴你脑袋2 小时前
写个添加注释的vscode插件
javascript·typescript·visual studio code
SuperEugene3 小时前
后台权限与菜单渲染:基于路由和后端返回的几种实现方式
前端·javascript·vue.js
csdn飘逸飘逸3 小时前
Autojs基础-全局函数与变量(globals)
javascript
KKKK3 小时前
手写Promise,从测试用例的角度理解
javascript
青青家的小灰灰3 小时前
迈向全栈新时代:SSR/SSG 原理、Next.js 架构与 React Server Components (RSC) 实战
前端·javascript·react.js
SuperEugene3 小时前
弹窗与抽屉组件封装:如何做一个全局可控的 Dialog 服务
前端·javascript·vue.js
青青家的小灰灰3 小时前
透视 React 内核:Diff 算法、合成事件与并发特性的深度解析
前端·javascript·react.js
SuperEugene3 小时前
组合式函数 、 Hooks(Vue2 mixin 、 Vue3 composables)的实战封装
前端·javascript·vue.js