前端面试高频之闭包该怎么答?!

作者: web前端-老严分类: 计算机技术 发布时间: 2023-11-04 23:08:09 浏览:5677 次

前端面试高频之闭包该怎么答?!

所得皆所愿t:
我觉得讲的通俗易懂又全面[打call][打call][打call]

【回复】回复 @web前端-老严 :能不能讲一下vue双向绑定原理
【回复】回复 @所得皆所愿t :proxy还是vue2的那个
深鲁克林的椰风道:
你这闭包的关键词 还是没回答出来 这种回答 我是过不了的

【回复】没错,我也过不了,不但过不了,我还会给低分,因为这个答案实在是过于经典的错误,面试者答出这个答案的时候,我就知道这人是一个没脑子的复读机,为了面试去网上找答案然后自以为懂了,再死记硬背完了来面试。闭包这个题我是必问的,就指着这个错误答案往下刷人呢。
哥布林大大大大王:
使用场景在哪?对比起来闭包有啥无法替代的优点?

【回复】回复 @薛哥在b站学知识 :变量污染太笼统了,你随便写几个没相关的变量,我也能说你环境作用域里的变量污染了,不干净了,框架更污染,也别用了吧
【回复】这个up说的是闭包的经典错误答案,即闭包是访问其他函数作用域中变量的函数。很多人听到这个答案的时候其实在内心深处是没听懂的,这很显然,因为本来就是错误的答案嘛。但是这些人却不敢质疑,因为这个答案流传太广了,太多半瓶子醋的人在网上装出一副老师的样子以讹传讹了。评论区的一帮没脑子的货当然说不出什么见解,因为他们压根就没有见解,只能玩一些梗避重就轻了。太多这样的误人子弟的家伙了,就好像上学的时候无法解释学生的问题,然后告诉学生就这么记住就行的那些老师一样,都是一些水货。这个错误答案之所以是错误,在于它将表现当做了目的,闭包看上去确实获得了其他函数的内部变量,但这不是它的目的。你的质疑是正确的,如果将全部变量都放在全局作用域,并且通过某种手段,确保这些变量绝对没人修改,是不是就不需要闭包呢?比如整个前端项目只有我一个人写,保证不污染变量,是不是就不需要闭包呢?我还有一个更尖锐的质疑,那就是获得其他函数的内部变量究竟要做什么呢?既然是人家内部的东西难道不应该就是不让用的吗?这个错误答案面对这些质疑是无力的,只能顾左右而言他。
【回复】回复 @薛哥在b站学知识 :为什么你们都是这样,讲的全是重复的,一骂一个不吱声,吱声都搁这啊对对对,你说的都对?
helloworld1999:
一个可以访问其定义时所在的词法作用域的函数就是闭包,一个全局函数也可以认为其是个闭包

大兄弟来啦:
内层函数使用外层函数的变量,让变量私有化,可以这么说嘛?

沃似恁迭:
听到up提到的防抖和节流加深了我的理解[脱单doge]

编程语言 高薪面试题 前端 高频 面试 JavaScript 面试高频 Web前端 前端面试 自学前端

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!