8.6作业

本文详细解读了闭包的概念、优缺点及应用场景,介绍了事件循环的工作原理,以及JavaScript中不同类型检验的方法。此外,还探讨了面向对象编程的核心概念,包括类、对象及其在编程中的优势。

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

8月6日

闭包的理解,优点缺点以及应用场景

闭包是指在一个函数内部定义的函数,并且这个内部函数可以访问到外部函数的变量。闭包可以捕获并保存外部函数的状态,使得外部函数的局部变量在内部函数调用时仍然可用。

闭包的优点包括:

  1. 数据隐藏:闭包可以隐藏外部函数的变量,避免全局命名空间的污染。
  2. 数据持久化:闭包中的变量可以在外部函数执行完后仍然存在,可以实现记忆功能。
  3. 高级特性:闭包可以实现函数工厂,动态创建函数。

闭包的缺点包括:

  1. 内存占用:闭包中的变量不会被及时释放,可能导致内存占用过高。
  2. 性能损耗:由于闭包涉及到变量查找,执行效率相对较低。
  3. 容易造成引用循环:如果闭包中引用了外部函数的变量,而这个变量又引用了闭包本身,就会造成引用循环,导致内存泄漏。

闭包常见的应用场景包括:

  1. 实现私有变量和方法:通过闭包可以模拟类似于私有变量和方法的效果。
  2. 延迟执行和节流防抖:通过闭包可以实现延迟执行和控制函数频繁执行的效果。
  3. 缓存:通过闭包可以实现函数的记忆功能,避免重复计算。

总之,闭包是一种强大的特性,在某些场景下可以发挥重要作用,但在使用时需要注意内存和性能方面的问题。

事件循环的理解以及应用理解

任务在主线程不断进栈出栈的一个循环过程。任务会在将要执行时进入主线程,在执行完毕后会退出主线程。
JavaScript是一门单线程的语言,意味着同一时间内只能做一件事,
但是这并不意味着单线程就是阻塞,而实现单线程非阻塞的方法就是事件循环
在JavaScript中,所有的任务都可以分为
同步任务:立即执行的任务,同步任务一般会直接进入到主线程中执行
异步任务:异步执行的任务,比如ajax网络请求,setTimeout定时函数等
异步任务还可以细分为微任务与宏任务
微任务一个需要异步执行的函数,执行时机是在主函数执行结束之后、当前宏任务结束之前
宏任务的时间粒度比较大,执行的时间间隔是不能精确控制的,对一些高实时性的需求就不太符合

JS类型检验的方式

1. typeof判断
typeof返回的类型都是字符串形式
2. Constructor
实例constructor属性指向构造函数本身
constructor 判断方法跟instanceof相似,但是constructor检测Objectinstanceof不一样,constructor还可以处理基本数据类型的检测,不仅仅是对象类型
3. Instanceof
instanceof可以判类型是否是实例的构造函数
instanceof 后面一定要是对象类型,并且大小写不能错,该方法适合一些条件选择或分支。
4. Object.prototype.toString.call()
判断类型的原型对象是否在某个对象的原型链上
5. 通过object原型上的方法判断
比如array.isArray()来判断是不是一个数组
6. ===(严格运算符)
通常出现在我们的条件判断中,用来判断数据类型的话就会非常的有局限性,比如判断一个变量是否为空,变量是否为数据等

面向对象编程

面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程的设计思想,不是一门编程语言。同时,OOP的目的不是为了提高运行效率,而是为了提高开发效率和系统的可维护性、可扩展性、可重用性。

面向对象编程中最重要的术语是“类”和“对象”。类是对某个事物的概括定义,可以把它看作一个模板,是对事物的抽象定义(描述)。对象则是对某个事物的具体实现,可以看做依照图纸建造的具体的实际事物。为了实现面向对象的编程,我们首先要定义一个“类”,然后在实际的开发过程中,根据实际的功能需求,依据这个“类”实现出一个“对象(实例)”。

链接:面向对象编程借鉴于

面向对象

编程思想:

基本思想

基本思想是使用对象,类,继承,封装等基本概念来进行程序设计

优点

易维护
采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的
易扩展
开发工作的重用性、继承性高,降低重复工作量。
缩短了开发周期
一般面向对象包含:继承,封装,多态,抽象

什么是类, 什么是对象?
类是用于描述同一类形的对象的一个抽象的概念, 类中定义了这一类对象应该具有的"静态属性"和"动态属性"
对象是类的一种实例化, 对象用"属性"和"方法"来对应描述事物所具有的"静态属性"和"动态属性"
类是用于描述同一类形的对象的一个抽象的概念, 类中定义了这一类对象应该具有的"静态属性"和"动态属性"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值