前端面試題目彙總
阿新 • • 發佈:2021-10-20
1、為什麼typeof null 是object?
不同的資料型別在底層都是通過二進位制表示的,二進位制前三位為000
則會被判斷為object
型別,
而null底層的二進位制全都是0,那前三位肯定也是000
,所以被判斷為object
2、0.1 + 0.2 === 0.3,對嗎?不對
JavaScript的計算存在精度丟失問題
- 原因:JavaScript中小數是浮點數,需轉二進位制進行運算,有些小數無法用二進位制表示,所以只能取近似值,所以造成誤差
- 解決方法:
- 先變成整數運算,然後再變回小數
- toFixed() 效能不好,不推薦
3、addEventListence的第三個引數是幹嘛的?
xxx.addEventListence('click', function(){}, false)
第三個變數傳一個布林值,需不需要阻止冒泡,預設是false,不阻止冒泡
4、Ajax、Axios、Fetch有啥區別?
- Ajax:是對XMLHttpRequest物件(XHR)的封裝
- Axios:是基於Promise對XHR物件的封裝
- Fetch:是window的一個方法,也是基於Promise,但是與XHR無關,不支援IE