互联网发展到了今天,很多同学都开始学习编程,java、python、linux、html5前端都是现在比较火爆的行业之一,而学习html5前端的同学也是最多的,简单、易上手是它的最主要特点,但是在面试中,就由很多朋友会因为html5中的js出错,接下来的几天小猿圈前端讲师就会为你分享几个前端js面试题,希望对你的面试有一定的帮助。
JavaScript的ES2015改变了一切。ES2015规范带来了很多重大特性。modules(模块)的原生支持,以及不断发展的函数式编程模式,新的JavaScript感觉上完全是一种不同的语言。
然而,在面试或聘用前端开发人员时,期望,现实和需求之间存在巨大差距。
在2018年底,我们仍然看到大多数面试者被问到AJAX时,面试者依然在jQuery语境中回答问题。这种差距还有很多典型的例子:
CSSGrid和Flexbox布局已经得到了广泛支持。然而,CSS面试时仍然集中在多列浮动布局和行内块级元素居中。他们依然对Bootstrap或Foundation网格系统有着永不消亡的热情。
模块打包器现在几乎是大规模应用程序的标配。然而,当谈到架构时,我们谈论的又是minification和concatenation。在访面试中我们真正讨论过多少次Webpack?
缓存讨论仍局限于Cachecontrolheaders和CDN。像IndexDB,HTTP/2或ServiceWorkers这样的东西只是路过。
这种例子不胜枚举,面试评估与工作实际需求之间的差距显而易见。一方面,我们的前端技术实现取得了跨越式发展,另一方面,新的开发方式还没有形成大的社区。社区分裂永远不是好兆头。这是一条灾难之路。差距总是会创造出一种新的东西,它有能力摧毁我们迄今为止所建造的一切。
面试是催生变革和汇聚人才的好方式。作为面试官的你,如果仅仅把面试当成面试,那么它只会让你自我膨胀。
要使一场面试成功,必须进行讨论。它必须是一个交换思想的地方。它应该挑起人们思考并客观地分析给定的问题。它是理解人们做出的决策过程,也是了解一个人对技术和解决问题的热情,也意味着了解未来可能的同事。所有那些难题,技巧或typeofnull都无法称得上真正面试。
以下是我们在面试讨论中提出的一些问题清单。我们希望此清单可以帮助面试官和面试者在正确的背景下设定期望,需求和现实。
我们要先把自己当成面试官。
JavaScript基础问题
1、JavaScript中有哪些不同的数据类型?
提示:只有两种类型–主要数据类型和引用类型(对象)。有6种主要类型。
2、使用JavaScriptProxy实现简单的数据绑定
提示:ESProxy允许您拦截对任何对象属性或方法的调用。首先,每当更改底层绑定对象时,都应更新DOM。
3、解释JavaScript并发模型
您是否熟悉Elixir,Clojure,Java等其他编程语言中使用的任何其他并发模型?
提示:查找事件循环,任务队列,调用栈,堆等。
4、new关键字在JavaScript中有什么作用?
提示:在JavaScript中,new是用于实例化对象的运算符。这里的目的是了解知识广度和记忆情况。
另外,请注意[[Construct]]和[[Call]]。
5、JavaScript中有哪些不同的函数调用模式?详细解释。
提示:有四种模式,函数调用,方法调用,.call()和.apply()。
6、解释任一即将发布新的ECMAScript提案。
提示:比如2018的BigInt,partial函数,pipeline操作符等。
以上是小猿圈web前端讲师为你分享的JavaScript基础问题部分,接下来的文章会为你分享《JavaScript 前端应用设计问题》以及《前端基础和理论问题》,学习永无止境,想要学习的同学可以到小猿圈上面自己搜索想要学习的视频观看呦。