前端常见面试题①

01、什么是事件传播?

事件传播是一种机制,定义事件如何传播或穿过 DOM 树到达其目标以及随后会发生什么。

02、解释 JavaScript 中“this”的工作原理

在 JavaScript 中,“this”指的是函数的当前执行上下文。

03、解释原型继承如何工作

原型继承允许一个对象通过建立原型链来继承另一个对象的属性。

04、null、未定义或未声明的变量之间有什么区别?

‘null’表示故意不存在任何对象值,‘undefined’表示声明的变量没有赋值,未声明的变量根本不声明。

05、什么是闭包,以及如何/为什么使用闭包?

闭包是在函数返回后保持对函数中变量的访问的一种方式。闭包通常用于数据隐私、封装和创建具有持久状态的函数。

06、您能否描述一下 Array.forEach() 循环和 Array.map() 方法之间的主要区别以及为什么您会选择其中一种方法?

主要区别在于 Array.forEach() 迭代数组的每个元素并对每个元素执行操作,但它不返回新数组。

另一方面,Array.map() 通过将函数应用于原始数组的每个元素来创建新数组。当您想要对每个元素执行操作而不返回新数组时,您可以选择 Array.forEach() ;当您需要将数组转换为新数组时,您可以选择 Array.map() 。

07、call和apply有什么区别?

call 和 apply 都用于更改函数的“this”作用域。主要区别在于如何将参数传递给函数。在 call 中,后续参数是单独传递的,而 apply 期望第二个参数是一个数组,该数组被解包为被调用函数的参数。

08、什么是hoisting?

Hoisting是 JavaScript 在编译阶段将变量和函数声明移动到各自作用域顶部的过程。这允许在代码中声明变量和函数之前使用它们。

09、描述事件冒泡

事件冒泡是一种机制,其中内部元素中发生的事件通过 DOM 层次结构中的父元素传播或“冒泡”。它从最里面的元素开始,一直持续到文档级别,一路触发附加到每个父元素的事件处理程序。

10、解释事件委托

事件委托是一种技术,您无需将事件侦听器附加到各个元素,而是将单个事件侦听器附加到将为其子元素处理事件的父元素。当您有大量元素或动态添加元素时,此方法非常有用,因为它可以提高性能并减少内存消耗。

你可能感兴趣的:(前端)