前端常见面试题⑥

51、CSS 预处理器 SASS/LESS 有何用途?

SASS 和 LESS 等 CSS 预处理器用于通过添加变量、mixins、嵌套和函数等功能来增强 CSS 的功能。它们允许更高效和模块化的 CSS 开发,从而实现代码重用、改进的组织和更轻松的维护。

52、事件循环如何处理微观和宏观任务?

事件循环负责处理 JavaScript 中的微任务和宏任务。在事件循环的每次迭代期间,它首先处理所有微任务(例如 Promise 和排队回调),然后再继续处理下一个宏任务。

这确保了微任务具有更高的优先级,并在下一次渲染或 I/O 操作之前执行。

53、如何识别浏览器中的内存泄漏?

识别浏览器中的内存泄漏涉及监视一段时间内的内存使用情况并分析堆快照。Chrome DevTools 等工具提供内存分析功能来跟踪内存分配、检测未使用的对象以及识别可能指示内存泄漏的长生命周期对象。

54、HTTP GET 和 POST 请求有什么区别?

HTTP GET 和 POST 请求都用于将数据从客户端传输到服务器。但是,GET 请求包括附加到 URL 的请求参数,而 POST 请求包括消息正文中的请求参数。POST 请求对于传输敏感数据更加安全,因为参数在 URL 中不直接可见。

55、什么时候经典继承是合适的选择?

经典继承通常用在像 Java 或 C# 这样的语言中,这些语言需要严格的类层次结构,并且对象之间的关系是固定的和层次化的。当设计具有明确定义的类结构和继承关系的复杂系统时,它可能是合适的。

56、什么时候原型继承是合适的选择?

当灵活性和对象组合比严格的类层次结构更重要时,原型继承适用。它允许对象直接从其他对象继承,从而促进代码重用、选择性继承和动态对象创建。由于其灵活和动态的特性,原型继承在 JavaScript 中被广泛使用。

57、使用回调、promise、await 和 async 处理异步调用。使用每种方法来处理异步调用有何优缺点?

回调提供了处理异步调用的传统方法,但可能导致回调地狱并使代码难以阅读。Promise 提供了更简洁的语法,并允许通过链接和 catch 块等功能更好地处理错误。Async/await 是最近添加的功能,它通过使用异步函数和等待 Promise 来简化异步代码,使代码看起来更加同步且更易于理解。

58、何时使用函数声明和表达式?

函数声明被提升并可以在代码中的声明之前使用,这使得它们适合一般函数定义。另一方面,函数表达式不会被提升,可以分配给变量或作为参数传递给其他函数,这使得它们对于创建匿名函数或回调非常有用。

59、什么是前端语义标记?

语义标记是指使用 HTML 元素向浏览器和开发人员传达含义和结构。它涉及选择适当的 HTML 标签(例如“

”、“

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