你应该知道的 JavaScript 面试问题和答案 - 初级和高级
面试前做好准备至关重要,因为你只有1️⃣次机会给面试官留下深刻印象,让他们相信你就是他们想要的那个人。通常情况下,你会遇到不同的工程师,他们会问一些非常棘手的问题,不幸的是,如果其中一个人说“不”,你很可能就拿不到这份工作了🤦🙅,尤其是资深面试官。
工程师总有一天会寻找新的职位,无论是因为新的挑战、更多的钱,还是为了搬到不同的地方。
在这种情况下,做好充分的准备并了解常见的问题至关重要,这样你才能正确自信地回答。我整理了初级和高级职位面试中必问的 1️⃣0️⃣ 个问题。我正在编写/编写 HTML 和 CSS 问答,完成后会发布在这里。
你觉得我们应该用什么问题来代替我现在的问题?是什么问题?为什么?没有正确答案,我只是好奇而已。
即使你暂时不需要,也可以随时收藏🔖。以后你寻找新职位的时候,可能需要刷新/回顾一下。
中高级问答
1.什么是闭包?
- 闭包是函数中的函数。即使外部函数返回后,内部函数仍可以访问外部函数的作用域和参数。
2.call、apply、bind 有什么区别?
- call和apply会立即调用一个函数,而bind则会创建一个新的函数,该函数可以在将来调用。call 的参数逐个传入,并以逗号分隔,而apply则接受一个数组作为参数。
3.什么是事件循环?
- 事件循环负责执行 javascript 代码、收集和处理事件以及执行排队的子任务。
4.什么是柯里化函数?
-
柯里化函数是将一个具有多个参数的函数转换为每个函数只有一个参数的函数序列的过程。
-
柯里化函数是提高代码可重用性和功能组合的好方法
5. JavaScript 中的原型是什么?
- 原型是 JavaScript 对象从另一个对象继承的机制。
6.什么是记忆化?
- 记忆化是一种优化技术,它存储昂贵的函数调用的结果,并在再次出现相同的输入时返回缓存的结果。
7.什么是高阶函数?
-
高阶函数是接受另一个函数作为参数或返回一个函数作为返回值或两者兼而有之的函数。
-
Map、filter 和 reduce 是 JavaScript 中已经内置的一些高阶函数的示例。
8.什么是事件委托?
- 事件委托是一种向父元素而不是多个元素添加单个事件监听器的模式。
9. 列举一些 JavaScript 中处理异步操作的方法
-
回调函数用于通知调用实例
-
Promise 是一个表示异步操作最终完成或失败的对象。待处理的承诺可以以某个值完成,也可以以某个原因拒绝。
回调函数会附加到返回的承诺上,使异步代码的处理更加轻松,更具可读性。 -
async/await是 ES2017 的新增功能,它是 Promise 之上的语法糖,使异步代码看起来像同步代码
10.什么是递归?
-
递归是一种通过函数反复调用自身直到得出结果来迭代操作的技术。
-
这对于解决诸如排序或遍历复杂或非线性数据结构的节点等问题最有效
不想看书?这里有个视频 -
入门至初级水平问答
1.什么是Javascript?
- 它是一种 Web 脚本语言,最初旨在在浏览器上运行。如今,JavaScript 已在服务器端使用。
2.什么是 ECMAScript?
- 是脚本语言的标准规范。JavaScript 基于 ECMAScript。
3. == 和 === 有什么区别?
== 比较值
=== 比较类型和值
4.什么是承诺?
- 是一个可能在未来某个时间产生单个值的对象,该值要么是已解析的值,要么是未解析的原因
5. JS 中的严格模式是什么?
- 它对于编写安全的 JS 代码很有用。它可以防止一些 bug 的发生,并避免抛出更多异常。
6.null和undefined有什么区别?
null类型是明确分配给变量的对象。
未定义类型是指变量已声明但尚未赋值
7.什么是AJAX?
- 代表异步 JavaScript 和 XML。我们可以将数据发送到服务器,并且无需刷新页面即可获取数据。
8.解释同步和异步之间的区别。
- 同步是阻塞操作,异步不是。同步会在执行下一段代码之前完成当前代码,而异步会在不完成当前代码的情况下继续执行下一段代码。
9. var、let 和 const 之间有什么区别
- var的作用域为函数。let和const的作用域为块级。可通过最近的花括号访问(函数、if-else、for 循环)
10.什么是 DOM?
- 它代表文档对象模型。它可用于访问和更改文档结构、样式和内容。
不想看书?这里有个视频 -
如果你想支持我 -请给我买杯咖啡
问答环节:https://dev.to/frontendengineer/top-10-javascript-interview-questions-and-answers-you-should-know-junior-and-senior-3943