「前端面試題大全01」

「前端面試題大全01」

一.JS中的Numeber類型

1.問題一:在四則運算中存在精度丟失的問題

(1)比如:0.1 + 0.2 //結果為:0.30000000000000004

(2)原因:計算機中用二進位來存儲小數,而大部分小數轉成二進位之後都是無限循環的值,因此存在取捨問題,也就是精度丟失。

2. 超過最大安全整數的運算是不安全的

(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垃圾回收機制會自動釋放佔用的內存,從而解決內存泄漏問題


推薦閱讀:

TAG:前端開發 | 面試問題 | Web開發 |