导航菜单
首页 >  前端程序员面试真题答案  > 2024年中级前端笔试面试题总结(含答案解析),web架构设计

2024年中级前端笔试面试题总结(含答案解析),web架构设计

11、js浮点数运算精度问题(0.1+0.2!==0.3)

比如在 JavaScript 中计算 0.1 + 0.2时,到底发生了什么呢?

首先,十进制的0.1和0.2都会被转换成二进制,但由于浮点数用二进制表达时是无穷的,例如。

JavaScript 代码:

0.1 -> 0.0001100110011001…(无限)

0.2 -> 0.0011001100110011…(无限)

IEEE 754 标准的 64 位双精度浮点数的小数部分最多支持 53 位二进制位,所以两者相加之后得到二进制为:

JavaScript 代码: 0.0100110011001100110011001100110011001100110011001100

因浮点数小数位的限制而截断的二进制数字,再转换为十进制,就成了 0.30000000000000004。所以在进行算术计算时会产生误差。

浏览器相关 12、浏览器从加载到渲染的过程,比如输入一个网址到显示页面的过程。 (考察频率:高)

加载过程:

浏览器根据 DNS 服务器解析得到域名的 IP 地址

向这个 IP 的机器发送 HTTP 请求

服务器收到、处理并返回 HTTP 请求

浏览器得到返回内容

渲染过程:

根据 HTML 结构生成 DOM 树

根据 CSS 生成 CSSOM

将 DOM 和 CSSOM 整合形成 RenderTree

根据 RenderTree 开始渲染和展示

遇到

13、浏览器缓存机制(策略)(考察频率:中) 参考:segmentfault.com/a/119000000… 14、性能优化(考察频率:中)

优化的方向有两个:

减少页面体积,提升网络加载

优化页面渲染

减少页面体积,提升网络加载

静态资源的压缩合并(JS 代码压缩合并、CSS 代码压缩合并、雪碧图)

静态资源缓存(资源名称加 MD5 戳)

使用 CDN 让资源加载更快

优化页面渲染

CSS 放前面,JS 放后面

懒加载(图片懒加载、下拉加载

相关推荐: