课程介绍
本课程主要面向刚刚入门的前端同学,主要讲述了JS的整体发展及一些比较重要的知识。其中通过一些简单的代码讲述了变量提升、JS的数据是怎么存储的、基础数据类型和复杂数据类型的区别等一些基础知识,也讲解了JS的执行、闭包、垃圾回收等一些稍微进阶一些的知识。
课程重点
- JS的基本概念
- JS的数据类型
- 变量提升
- 作用域
- 闭包
- 垃圾回收
闭包
闭包(Closure)是指在一个函数内部定义的函数可以访问该函数的内部变量,并将该函数及其内部变量绑定在一起形成的一个实体。在 JavaScript 中,闭包常常用于封装变量、实现模块化、延迟执行等场景。
当一个函数执行完毕后,其内部作用域中的变量通常会被销毁。但是如果一个内部函数仍然有对这些变量的引用,那么这些变量就不会被销毁,它们会和这个内部函数一起形成一个闭包。通过闭包,内部函数可以访问外部函数作用域中的变量,并且可以在外部函数执行完成后继续使用这些变量。
闭包的应用非常广泛,常见的场景包括实现私有变量、实现高阶函数、实现异步编程、实现记忆化等。常见的案例包括函数柯里化、函数节流、函数防抖等。
垃圾回收
JavaScript 垃圾回收是指 JavaScript 引擎自动管理内存的过程,通过检测不再使用的变量、对象和函数等,回收它们所占用的内存空间,从而保证系统运行的稳定性。
JavaScript 的垃圾回收机制主要是基于“标记清除”和“引用计数”两种算法实现的。其中,“标记清除”算法通过标记所有在内存中活跃的对象,然后清除未被标记的对象,来回收内存;“引用计数”算法则通过记录每个对象被引用的次数,当其引用次数为 0 时就将其回收。
具体来说,在 JavaScript 中,当一个变量、对象或函数不再被引用时,它就成为了垃圾。垃圾回收器会自动扫描内存中的对象,标记那些还在使用的对象,删除其他的对象,并释放它们占用的内存空间。这个过程是自动进行的,程序员不需要手工干预。
需要注意的是,由于 JavaScript 的垃圾回收机制是自动的,因此在编写代码时要特别注意避免内存泄漏和性能问题,例如尽量避免创建大量临时对象、及时释放不再使用的对象等。
文章仅为个人学习笔记,如有错误,欢迎指正。下期见🔥