interview
frontend-classic
JS在什么情况下会存在数字精度丢失的问题,如何解决?

前端经典面试题合集, 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 方法来处理链中的错误。

用途

这些内容在面试中被考察,是因为它们是前端开发的基础知识和核心技能。在实际生产环境中,理解这些概念能够帮助开发者更好地编写高效、健壮的代码,并解决实际遇到的问题。例如,数字精度丢失在金融计算中可能会导致严重错误,事件机制在用户交互时非常关键,闭包和原型链对于代码结构和性能优化非常重要,CORS 则是前后端分离开发中常见的问题。\n

相关问题

🦆
什么是 JavaScript 执行上下文和执行栈?

执行上下文是 JavaScript 代码执行时的环境,执行栈是用来管理执行上下文的栈结构。

🦆
介绍一下 JavaScript 的垃圾回收机制?

JavaScript 的垃圾回收机制主要是通过引用计数和标记清除算法实现的,用于自动管理内存。

🦆
解释一下 AJAX 和 Fetch API 的区别?

AJAX 是一种用于在不刷新页面的情况下进行异步 HTTP 请求的技术,Fetch API 是现代的替代方案,提供了更强大的功能和更简洁的接口。

🦆
如何优化前端性能?

包括减少 HTTP 请求、使用内容分发网络(CDN)、压缩和合并文件、懒加载、使用缓存、代码拆分等方法。

🦆
什么是虚拟 DOM?为什么需要它?

虚拟 DOM 是 React 等框架中用于优化 DOM 操作的一种技术,通过在内存中表示 UI,然后与真实 DOM 进行最小化差异更新,提高性能。

🦆
介绍一下 TypeScript 的优点和使用场景?

TypeScript 是 JavaScript 的超集,提供了静态类型检查,能够提高代码的可维护性和可读性,特别适用于大型项目和团队合作。