前端经典面试题合集, JS 在什么情况下会存在数字精度丢失的问题,如何解决?
前端经典面试题合集, JS 在什么情况下会存在数字精度丢失的问题,如何解决?
QA
Step 1
Q:: JS 在什么情况下会存在数字精度丢失的问题,如何解决?
A:: JavaScript 使用 64 位双精度浮点数表示数字,这种表示方式在处理一些大数字或小数时会出现精度丢失问题。例如,0.1 + 0.2 !== 0.3。解决方法可以是使用库如 Big.
js 或者直接对小数进行四舍五入处理来规避精度丢失。
Step 2
Q:: 什么是事件冒泡和事件捕获?如何阻止事件冒泡?
A:: 事件冒泡是指事件从最深的目标元素开始向上冒泡到根元素,事件捕获则是从根元素开始向下捕获到目标元素。可以通过调用 event.stopPropagation() 或 event.cancelBubble =
true 来阻止事件冒泡。
Step 3
Q:: 介绍一下闭包,闭包的应用场景有哪些?
A:: 闭包是指函数在其外部作用域引用了一个变量,然后在其他地方调用这个函数时,该变量仍然可用。应用场景包括数据封装、私有变量、回调函数等。
Step 4
Q:: 什么是 CORS?如何解决跨域问题?
A:: CORS(跨域资源共享)是一种机制,允许浏览器从不同源的服务器请求资源。解决跨域问题的方法包括 JSONP、使用 CORS 头(例如 Access-Control-Allow-
Origin)、代理服务器等。
Step 5
Q:: 解释一下 JS 中的原型链,如何实现继承?
A:: 原型链是指对象通过原型属性相互连接,形成的一条链。在 JavaScript 中,可以通过原型链实现继承,常用的方法有原型继承(prototype)和 class 关键字。
Step 6
Q:: Promise 的基本用法是什么?如何处理 Promise 链中的错误?
A:: Promise 是用于处理异步操作的对象,通过 then 和 catch 方法进行链式调用。可以通过在链的末尾添加 catch 方法来处理链中的错误。