「前端面试题大全01」

「前端面试题大全01」_第1张图片

一.JS中的Numeber类型

1.问题一:在四则运算中存在精度丢失的问题

(1)比如:0.1 + 0.2 //结果为:0.30000000000000004

(2)原因:计算机中用二进制来存储小数,而大部分小数转成二进制之后都是无限循环的值,因此存在取舍问题,也就是精度丢失。

  1. 超过最大安全整数的运算是不安全的

(1)比如:9007199254740991 + 2 // 9007199254740992

(2)原因:本质上还是因为数字类型在计算机中的存储结构。在尾数位不够补零之后,只要是多余的尾数为1所对应的整数都不能被精确表示。

3.上面两个问题原因总结

不管是浮点数计算的结果错误和大整数的结果错误,最终都可以归结到JS的精度只有53位(尾数只能存储53位的有效数字)

4.解决方案:

(1)大而全的解决方案就是使用mathjs

(2)使用这个1k都不到的number-precision

二.css设计模式

OOCSS; SMACSS;BEM;Atomic CSS;CSSin JS

细节可以见我的独立博客哦。

三.WeakMap可以解决闭包内存泄漏问题

1.map

(1)任意值当做键

(2)对象Object的键只能是字符串

(3)Map类似字典,set类似集合

2.weakmap

(1)键必须是对象

(2)当引用的对象消失之后,JS的GC垃圾回收机制会自动释放占用的内存,从而解决内存泄漏问题

你可能感兴趣的:(「前端面试题大全01」)