2024/4/24总结

js进阶

作用域

作用域分为全局作用域局部作用域

局部作用域

分为块级作用域 ( 就是使用 {} 包裹起来的代码称为代码块 )和函数作用域( 顾名思义就是函数包裹的部分 )

let 和 const 声明的常量会产生块级作用域 var不会产生块作用域

作用域链就是最底层的查找机制,其实就是就近原则。

垃圾回收机制

内存的生命周期

  • 内存分配 声明变量、函数、对象的时候,系统会自动分配内存
  • 内存使用 读写内存、也就是使用变量、函数等
  • 内存回收 使用完毕,由垃圾回收器自动回收

全局变量不会回收

局部变量会自动回收

内存泄漏 程序中分配的内存由于某种原因程序未释放或无法释放叫做内存泄漏

  • 栈:基本数据类型,由操纵系统自动分配函数的参数值,局部变量
  • 堆:复杂数据类型,由垃圾回收机制回收
算法说明:
  • 引用计数法

如果没有对象对它进行引用,那么就会被回收

缺点 :嵌套引用会出问题 ,如果俩个对象相互引用,垃圾回收器不会回收,从而导致内存泄漏。

  • 标记清除法

从根部定期扫描,凡是能到达的对象,都是还需要使用的,无法到达的标记为不再使用,并且进行回收

闭包

一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域

作用:封闭数据、提供操作,外部可以访问函数内部的变量

变量提升

它允许在变量声明之前即被访问(仅仅存在于 var 声明的变量)

变量在 var 声明之前被访问,变量的值为 undefined ,变量提升只存在当前作用域下。

函数也是可以先声明之前就被调用

函数表达式不能,会出问题

动态参数 arguments

是函数内部内置的伪数组变量,只存在函数中,作用是动态获取函数的实参。

剩余参数

...变量名字

... 是语法符号,置于最末函数形参之前,用于获取 多余 的实参

借助 ... 获取的剩余实参,是个真数组,开发中,提倡多使用 剩余参数

箭头函数的 this 不会创建自己的 this ,它只会从自己的作用域脸的上一层沿用 this

相关推荐
PieroPc5 分钟前
Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
开发语言·python·excel
hackeroink1 小时前
【2024版】最新推荐好用的XSS漏洞扫描利用工具_xss扫描工具
前端·xss
2401_857439693 小时前
SSM 架构下 Vue 电脑测评系统:为电脑性能评估赋能
开发语言·php
迷雾漫步者3 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
SoraLuna3 小时前
「Mac畅玩鸿蒙与硬件47」UI互动应用篇24 - 虚拟音乐控制台
开发语言·macos·ui·华为·harmonyos
向前看-3 小时前
验证码机制
前端·后端
xlsw_3 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
燃先生._.4 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
Dream_Snowar4 小时前
速通Python 第三节
开发语言·python