位置: 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系列算法全家桶)

  • 闲鱼退款必须卖家同意才可以吗(闲鱼退款必须卖家不处理)

    闲鱼退款必须卖家同意才可以吗(闲鱼退款必须卖家不处理)

  • OPPO通话黑屏感应器怎么关闭(oppo通话黑屏 不亮屏)

    OPPO通话黑屏感应器怎么关闭(oppo通话黑屏 不亮屏)

  • 华为手机微博可以分身吗(华为手机微博可以看live photo吗)

    华为手机微博可以分身吗(华为手机微博可以看live photo吗)

  • 微视同步朋友圈为什么别人看不到

    微视同步朋友圈为什么别人看不到

  • 5g外置基带和内置的区别大吗(5g外置基带和集成基带哪个好网速快)

    5g外置基带和内置的区别大吗(5g外置基带和集成基带哪个好网速快)

  • switch连不上互联网(switch连不上互联网为什么就不能连wifi)

    switch连不上互联网(switch连不上互联网为什么就不能连wifi)

  • 全民k歌怎么录制视频唱歌(全民k歌怎么录屏唱歌)

    全民k歌怎么录制视频唱歌(全民k歌怎么录屏唱歌)

  • 抖音背景模糊特效怎么用(抖音背景变模糊在哪)

    抖音背景模糊特效怎么用(抖音背景变模糊在哪)

  • 带格式的突出显示什么意思(格式突出显示怎么设置)

    带格式的突出显示什么意思(格式突出显示怎么设置)

  • 苹果手机自动打开wifi怎么回事(苹果手机自动打电话出去怎么解决)

    苹果手机自动打开wifi怎么回事(苹果手机自动打电话出去怎么解决)

  • oppor11splus充电器多少w(oppor11splus充电器功率)

    oppor11splus充电器多少w(oppor11splus充电器功率)

  • 抖音保存本地在哪找(抖音保存本地在哪里找到)

    抖音保存本地在哪找(抖音保存本地在哪里找到)

  • 苹果手表s4和s5区别(苹果手表s4和s5的区别)

    苹果手表s4和s5区别(苹果手表s4和s5的区别)

  • 苹果11信息有个感叹号什么意思(苹果11信息有个感叹)

    苹果11信息有个感叹号什么意思(苹果11信息有个感叹)

  • 手机qq怎么不显示年龄(手机qq怎么不显示会员图标)

    手机qq怎么不显示年龄(手机qq怎么不显示会员图标)

  • 微信关闭自启动省电吗(微信关闭自启动能收到消息吗)

    微信关闭自启动省电吗(微信关闭自启动能收到消息吗)

  • 苹果手机怎么把照片加密(苹果手机怎么把卡上的通讯录导入手机)

    苹果手机怎么把照片加密(苹果手机怎么把卡上的通讯录导入手机)

  • ssl协议又称为什么(ssl协议的主要作用是什么)

    ssl协议又称为什么(ssl协议的主要作用是什么)

  • 电脑pin怎么设置(电脑PIN怎么设置?)

    电脑pin怎么设置(电脑PIN怎么设置?)

  • netapp存储是什么(netapp存储操作系统)

    netapp存储是什么(netapp存储操作系统)

  • 时间限额怎么取消(怎么把时间限额去了)

    时间限额怎么取消(怎么把时间限额去了)

  • 闲鱼卖家延长收货在哪(闲鱼卖家延长收货)

    闲鱼卖家延长收货在哪(闲鱼卖家延长收货)

  • redmi是什么牌子(redmi是什么牌子手机)

    redmi是什么牌子(redmi是什么牌子手机)

  • 快妖精为什么进不去

    快妖精为什么进不去

  • 怎样缩小图片内存(怎样缩小图片内存大小不改变像素)

    怎样缩小图片内存(怎样缩小图片内存大小不改变像素)

  • 关联qq为什么看不到了(关联QQ为什么看不到群消息)

    关联qq为什么看不到了(关联QQ为什么看不到群消息)

  • macbookpro怎么测网速?mac查看网速教程(macbook pro怎么检测)

    macbookpro怎么测网速?mac查看网速教程(macbook pro怎么检测)

  • 如何固定IP(如何固定iPhone墙纸)

    如何固定IP(如何固定iPhone墙纸)

  • 在Win7系统中,电脑时间改不了怎么办?(在windows7的)

    在Win7系统中,电脑时间改不了怎么办?(在windows7的)

  • 账面金额是包含什么?
  • 公司注销了账本还需保留吗
  • 营业外收入需要结转到本年利润吗
  • 劳务外包 规定
  • 对公账户转账给法人用途写什么
  • 户外公司招牌
  • 2019年新注册公司
  • 融资性售后回租承租方出售资产为什么不缴纳增值税
  • 国际贸易公司注册需要什么条件海南
  • 计提应付票据利息的会计分录
  • 充值给予的优惠怎么用
  • 政府补贴项目账务怎么做
  • 挂账留底税额如何抵扣?
  • 预收帐款一直挂账好吗
  • 原始凭证审核的内容
  • 单位租用个人住房合法吗
  • 促销赠品的会计处理
  • 消费税价外费用的计算
  • 代扣税金是什么意思
  • 简易征收税额航天信息服务费可以抵扣吗?
  • 服务费不开发票可以做无票收入吗?
  • 佣金增值税
  • 跨行转账16万手续费多少
  • 企业网银使用
  • 个人劳务报酬所得税计算方法2020
  • 企业购入土地如何处理
  • 无租使用房产协议
  • 电子汇款收入是什么意思
  • 固定资产出租收入属于其他业务收入吗
  • 进项税额转出月底如何结转
  • 银行承兑汇票的转让一般通过什么渠道
  • 收入成本配比原则
  • PHP:oci_result()的用法_Oracle函数
  • typecho安装插件
  • 初学者如何
  • 复制粘贴如何提取文字
  • 房地产业务招待费
  • 孕妇能吃荔枝吗 孕晚期
  • vue3 + Tailwind Css + Vite 搭建快速开发前端样式环境
  • 转销盘盈会计分录
  • tar压缩解压缩命令
  • 微软edge插件
  • 列表定义格式
  • 出差费用包干制还需要报销吗
  • 现金流量表的编制方法和计算公式
  • 合作卖东西怎么分成
  • 认缴制和实缴制的时间
  • 出售长期股权投资
  • 存货的期末余额是账面余额吗
  • 所得税 补税
  • 销项税怎么做账
  • 职工教育经费还有什么经费
  • 收到供应商的赔偿款要开票吗
  • 母子公司往来款属于借款吗
  • 工程施工怎么结转,用友自动结转吗
  • 多计提的税费怎么处理
  • 存款基准利率是不是利息
  • 银行代扣水电
  • 工会经费补缴的流程
  • 以前年度损益调整借贷方向
  • 存出投资款应计入什么科目
  • 高新技术企业退出机制
  • Mac OS X El Capitan公测版下载地址及安装教程图解
  • winxp软件双击后没有反应
  • windowsxpwifi
  • ssd安装centos7
  • win7工具栏怎么调整
  • 如何创建微软帐户
  • win8.1如何更改开始菜单
  • centos7误删除怎么恢复
  • 安装 centos
  • 简单射击原理
  • html框架frameset代码
  • 用nodejs搭建服务器
  • jquery json对象
  • android 加载更多
  • 严苛认证
  • 在电子税务局如何增加税种
  • linux显示中文
  • 海南省地税官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设