「高频JS手写」20+高频JS手写题总结
「高頻JS手寫(xiě)」20+高頻JS手寫(xiě)題總結(jié)
前言
這篇文章主要是 總結(jié) + 實(shí)踐一些比較常見(jiàn)且重要的JS手寫(xiě)題 ,方便自己以及大家學(xué)習(xí)參考。
1. 數(shù)據(jù)類(lèi)型判斷
核心思想 :typeof 可以判斷 Undefined、String、Number 、Boolean 、Symbol、Function類(lèi)型的數(shù)據(jù),但對(duì)其他的都會(huì)認(rèn)為是Object ,比如Null 、Array等。所以通過(guò)typeof來(lái)判斷數(shù)據(jù)類(lèi)型會(huì)不準(zhǔn)確。
解決方法 :可以通過(guò)Object.prototype.toString解決 。
實(shí)現(xiàn):
function mytypeof(obj) { return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();}復(fù)制代碼- 使用call 是為了綁定 this 到 obj 上
- 使用slice 是因?yàn)檫@前面返回的結(jié)果是類(lèi)似[Object xxx]這樣的, xxx 是根據(jù) obj 的類(lèi)型變化的
- 使用toLowerCase 是因?yàn)樵鷗ypeof的返回結(jié)果的第一個(gè)字母是小寫(xiě)字母 。