一.JS中的Numeber類型
1.問題一:在四則運(yùn)算中存在精度丟失的問題
(1)比如:0.1 + 0.2 //結(jié)果為:0.30000000000000004
(2)原因:計(jì)算機(jī)中用二進(jìn)制來存儲(chǔ)小數(shù)舟茶,而大部分小數(shù)轉(zhuǎn)成二進(jìn)制之后都是無限循環(huán)的值恩够,因此存在取舍問題,也就是精度丟失巡揍。
- 超過最大安全整數(shù)的運(yùn)算是不安全的
(1)比如:9007199254740991 + 2 // 9007199254740992
(2)原因:本質(zhì)上還是因?yàn)閿?shù)字類型在計(jì)算機(jī)中的存儲(chǔ)結(jié)構(gòu)主穗。在尾數(shù)位不夠補(bǔ)零之后,只要是多余的尾數(shù)為1所對(duì)應(yīng)的整數(shù)都不能被精確表示。
3.上面兩個(gè)問題原因總結(jié)
不管是浮點(diǎn)數(shù)計(jì)算的結(jié)果錯(cuò)誤和大整數(shù)的結(jié)果錯(cuò)誤胆绊,最終都可以歸結(jié)到JS的精度只有53位(尾數(shù)只能存儲(chǔ)53位的有效數(shù)字)
4.解決方案:
(1)大而全的解決方案就是使用mathjs
(2)使用這個(gè)1k都不到的number-precision
二.css設(shè)計(jì)模式
OOCSS; SMACSS欧募;BEM压状;Atomic CSS;CSSin JS
細(xì)節(jié)可以見我的獨(dú)立博客哦跟继。
三.WeakMap可以解決閉包內(nèi)存泄漏問題
1.map
(1)任意值當(dāng)做鍵
(2)對(duì)象Object的鍵只能是字符串
(3)Map類似字典种冬,set類似集合
2.weakmap
(1)鍵必須是對(duì)象
(2)當(dāng)引用的對(duì)象消失之后,JS的GC垃圾回收機(jī)制會(huì)自動(dòng)釋放占用的內(nèi)存舔糖,從而解決內(nèi)存泄漏問題