位置: IT常识 - 正文

2022前端面经---(js高级)一文让你搞懂闭包(2020年前端面试)

编辑:rootadmin
2022前端面经---(js高级)一文让你搞懂闭包

推荐整理分享2022前端面经---(js高级)一文让你搞懂闭包(2020年前端面试),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:2021前端面试题目100及最佳答案,2020前端面试题及答案,2019前端面试,2021前端面试题目100及最佳答案,2020年前端面试,2021前端面试宝典,2021前端面试最新笔试题,2021前端面试宝典,内容如对您有帮助,希望把文章链接给更多的朋友!

CSDN话题挑战赛第2期 参赛话题:面试宝典

✅ 作者简介:一名迈入大三的大学生,致力于提高前端开发能力 ✨ 个人主页:前端小白在前进的主页 🔥 系列专栏 : 2022面经 ⭐️ 个人社区 : 个人交流社区 🍀 学习格言: ☀️ 打不倒你的会使你更强!☀️

🔥前言

在面试过程中js高级的闭包是面试官必问的问题,有好多小伙伴们对闭包都不理解,感觉这些东西生硬晦涩,在开发过程中没有很好的应用,这篇文章将带领大家彻底搞懂闭包,并且了解闭包的应用场景

📃目录 面试题什么是js垃圾回收机制(前提)闭包个人总结面试题

面试题:

请你说详细说明一下js中什么是闭包

问题剖析:

本题就是考察你对闭包是否有一个熟练的掌握,这个问题你必须要知道闭包的概念,以及怎么去实现闭包,同时你要懂得js中的垃圾回收机制。

2022前端面经---(js高级)一文让你搞懂闭包(2020年前端面试)

问题解答:

什么是js垃圾回收机制(前提)

垃圾回收机制(GC:Garbage Collection):执行环境负责管理代码执行过程中使用的内存。JS的垃圾回收机制是为了以防内存泄漏,内存泄漏的含义就是当已经不需要某块内存时这块内存还存在着,没有被释放,导致该内存无法被使用,垃圾回收机制就是间歇的不定期的寻找到不再使用的变量,并释放掉它们所指向的内存。 概念出自于文章JavaScript垃圾回收机制

其实我们通俗的解释就是:js存在专门的机制去处理我们不用的一些东西,不论是简单数据类型还是复杂数据类型。

简单举例:var a =1,我们定义了变量a,并且给它赋值为1,随后我们去改变a的值,a = 100,现在的话我们知道a的值变成了100,那么数值1我们肯定就不会用到了,那么js的垃圾回收机制会帮助我们把数值1给回收了,为了避免内存泄漏!

闭包闭包的概念

闭包(closure):函数内部返回一个函数,这个内部函数被外界所引用,这个内部函数就不会被js回收机制所销毁,内部函数所用到的外部函数的变量也不会被销毁。代码示例:

function outer() { let name = 'james' let age = 37 return function() { return name + ' is superstar'; } } let func = outer() console.log(func()); //james is superstar代码解析:

在上方代码中我们定义了一个外部函数outer(),在外部函数内部返回了一个函数(内部函数),随后在外界中将外部函数赋给了func,这个func就是内部函数,然后执行func(),打印出来了相应的结果,在这里,我们使用了外部函数内定义的属性name和内部函数,所以name和内部函数不会被js回收机制所处理,但是属性age我们并没有使用,所以age被js垃圾回收机制所回收!

优点和缺点

在代码解析中,我们知道了 我们所创建的临时变量name将不会被回收,所以闭包的优点就是:让临时变量可以永驻内存。但是如果我们不停的执行func,那么就会出问题,这样的话会使内存中不断的储存临时变量,就会导致内存泄漏,所以闭包的缺点就是:会造成内存泄漏。项目场景

在上面我们知道了什么是闭包,但是只知道闭包不知道咋用,未免有点难受,在这里说一个场景,就是防抖和节流

代码示例:

在这里写一个搜索框,搜索框的内容输入频次可以使用防抖或节流来优化。

<input type="text" id="search">

闭包防抖

search.oninput = (function() {let timer = nullreturn ()=>{ if(timer) { clearTimeout(timer) } timer = setTimeout(()=>{ console.log('发送了ajax请求'); },500)}})()

闭包节流

search.oninput = (function(){ let flag=true return ()=>{ if(flag) { setTimeout(()=>{ console.log('发送了ajax请求'); flag = true },500) } flag = false } })()

闭包的实战常见场景主要是在防抖和节流中,就是为了防止在防抖和节流中我们创建的临时变量会丢失!

个人总结

闭包是js高级中一个重要的知识点,闭包的存在就是为了进行一些项目的优化,可能在日常开发中小伙伴们使用不到,但是一旦开发项目对所有的细节把控都会十分的到位,那么闭包是必用的一个小细节,还是希望大家能够好好钻研一下闭包,祝大家面试成功!😉😉

本文链接地址:https://www.jiuchutong.com/zhishi/298495.html 转载请保留说明!

上一篇:程序员未来是不是会大量失业?(程序员未来会失业吗)

下一篇:YOLO系列算法(yolo系列算法全家桶)

  • 苹果蓝牙耳机怎么恢复出厂设置(苹果蓝牙耳机怎么配对安卓)

    苹果蓝牙耳机怎么恢复出厂设置(苹果蓝牙耳机怎么配对安卓)

  • 酷狗概念版什么区别(酷狗概念版什么时候出来的)

    酷狗概念版什么区别(酷狗概念版什么时候出来的)

  • 微信号可以隐藏吗(微信号可以隐藏性别吗)

    微信号可以隐藏吗(微信号可以隐藏性别吗)

  • 联想笔记本关不了机(联想笔记本关不了机,一直在显示正在关机)

    联想笔记本关不了机(联想笔记本关不了机,一直在显示正在关机)

  • macbookpro屏幕怎么清洁(macbookpro屏幕怎么样)

    macbookpro屏幕怎么清洁(macbookpro屏幕怎么样)

  • 苹果自动扣款的应用可以追回吗(苹果自动扣款的项目能退款到账吗)

    苹果自动扣款的应用可以追回吗(苹果自动扣款的项目能退款到账吗)

  • word填空线怎么打出来(word 填空线)

    word填空线怎么打出来(word 填空线)

  • 淘宝足迹怎么查一年的(淘宝足迹怎么查去年的)

    淘宝足迹怎么查一年的(淘宝足迹怎么查去年的)

  • 怎样把视频和图片拼在一起(怎样把视频和图片放在一起播放)

    怎样把视频和图片拼在一起(怎样把视频和图片放在一起播放)

  • 手机的热点在哪里(手机热点怎么连接)

    手机的热点在哪里(手机热点怎么连接)

  • mate30pro怎么打开应用双开(mate30pro无线充电)

    mate30pro怎么打开应用双开(mate30pro无线充电)

  • 一加nfc怎么复制门禁卡(一加nfc怎么复制饭卡)

    一加nfc怎么复制门禁卡(一加nfc怎么复制饭卡)

  • 大王卡销户可否再申请(大王卡销户可以用原来的号码吗)

    大王卡销户可否再申请(大王卡销户可以用原来的号码吗)

  • 华为mate30怎样关机(华为mate30怎样关闭多余页面)

    华为mate30怎样关机(华为mate30怎样关闭多余页面)

  • v20如何关闭后台(v20关机设置方法)

    v20如何关闭后台(v20关机设置方法)

  • soulapp是什么意思(soul是什么软件里边有功能)

    soulapp是什么意思(soul是什么软件里边有功能)

  • 蓝牙sbc格式和aac差别(蓝牙sbc aac)

    蓝牙sbc格式和aac差别(蓝牙sbc aac)

  • 淘宝延长收货时间规则(淘宝延长收货时间后可申请退款吗?)

    淘宝延长收货时间规则(淘宝延长收货时间后可申请退款吗?)

  • 如何把哔哩哔哩的缓存导出(如何把哔哩哔哩视频放到PPT里)

    如何把哔哩哔哩的缓存导出(如何把哔哩哔哩视频放到PPT里)

  • 微信加人 对方存在异常(微信加人对方没有显示是为啥)

    微信加人 对方存在异常(微信加人对方没有显示是为啥)

  • 淘宝钱包余额在哪(淘宝零钱余额)

    淘宝钱包余额在哪(淘宝零钱余额)

  • 抖音怎么看榜一(抖音怎么看榜一送了多少钱)

    抖音怎么看榜一(抖音怎么看榜一送了多少钱)

  • 突然无法激活触控id(无法激活触控怎么回事)

    突然无法激活触控id(无法激活触控怎么回事)

  • Vue笔记(五)vuex(vue笔记项目)

    Vue笔记(五)vuex(vue笔记项目)

  • 契税通过应交税费
  • 个体户怎么开增值税普通发票过程
  • 股权转让产生的印花税
  • 费用性税金计入什么科目
  • 增值税减免备案改备查后续管理
  • 怎么计算股票的压力位和支撑位
  • 用银行存款缴纳各种税费所引起的变动为
  • 总公司委托分公司开票的委托书
  • 公司法人要交什么税
  • 租金收入未收到 税法规定
  • 专用发票报销时限
  • 私车公用油费计入什么科目
  • 固定资产丢失收入怎么办
  • 计提附加税的会计分录
  • 电子银行承兑如何背书给别人
  • 小企业会计准则主要按照什么计量
  • 火车票抵扣进项税需要认证吗
  • 购买固定资产货款未付
  • 酒店水电费分录
  • 公司破产清算的清偿顺序为
  • win11怎么取消开机启动项
  • 小微企业免税的会计分录怎么写
  • 购入的财务软件怎么入账
  • 管理费用如何分摊到产品成本
  • 公司入股的钱怎么做账
  • explorer进程作用
  • win7无法记忆文件保存路径
  • 最高像素的镜头是多少
  • php验证码显示不出来
  • 蜜蜂 (© Angela Parker/Offset)
  • 一般纳税人企业所得税税率多少
  • 房地产企业土地使用税纳税义务终止
  • vue 百度地图 移动端
  • 增值税发票校验码在哪个位置
  • 会计凭证作用的说法中不正确的是
  • 前端进阶教程
  • PHP+JQuery+Ajax实现分页方法详解
  • unistack怎么关掉
  • 增值税附加税减免政策2022年
  • 建筑企业其他应付款包含什么内容
  • 缴纳税款滞纳金怎么算
  • access使用查询向导固定常数
  • mongodb聚合函数mapreduce
  • 资质平移后以前的工程怎么办
  • 以前年度多交增值税账务处理
  • 企业办税人员如何实名认证
  • 原始凭证收集
  • 简易计税方法缴纳城建税和教育税
  • 增值税专用发票金额与付款金额是否必须一致
  • 递延收益与递延负债的区别
  • 凭证摘要写错了已结账了怎么办
  • 按次缴纳的个人所得税
  • 甲企业于2019年3月1日以2000万元取得乙上市公司
  • 融资租赁的服务费是什么票
  • 公司改名后发票怎么开
  • 会计行政法规包括哪些条例?具体说明?
  • ubuntu系统中安装微信步骤
  • putty如何登录linux
  • Fedora Core 5(FC-5)正式版下载
  • openssl安装教程
  • 映泰重装系统按什么
  • 安装win8系统需要什么条件
  • win8无法连接到internet
  • ubuntu 系统卡住
  • 电脑超频以后变得很卡
  • macpro防火墙需要打开吗
  • win 7系统无法删除系统文件
  • exfat装win7
  • win10桌面预览功能怎么打开
  • iptables: Unknown error 4294967295问题解决方法
  • href中的?
  • git pull could not read from remote repository
  • python matplotlab
  • NGUI之UIRoot
  • bootstrap入门教程
  • node.js和ajax的顺序
  • python如何获取系统绝对路径
  • 许昌市民之家有餐厅吗在几楼
  • 企业跨区域迁移
  • 2021年社保又涨价了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设