面試中你真的能完美回答js數(shù)據(jù)類型嗎

請說一下js有哪些數(shù)據(jù)類型?

這是一道非常常見的面試題,但事實上可能區(qū)分出面試官和候選人的水平。
你可能會回答基礎(chǔ)數(shù)據(jù)類型是string、boolean、number、null、undefined,引用類型是object。有些同學還回答不全,趕緊檢討一下。
水平差點的面試官或者要求低點的面試管這里可能就結(jié)束了。下一題。
想刁難你一下的面試官就開始了。
es6的Symbol知不知道,你如果說知道,他可能開始考你Symbol的問題了。
可能還會問BigInt知不知道。
從object深挖可能會問你object有哪些,那你就得回答function、array、data、regexp、error。
數(shù)據(jù)類型回答全之后,大多數(shù)公司一般會接著追問

請說一下如何判斷數(shù)據(jù)類型

你可能會說typeof、instanceof。
然后接著說完typeof可以判斷哪些number、string、boolean、undefined、function、object。然后instanceof是看看在不在原型鏈。
接下來面試官開始問原型鏈。

說一下原型鏈

只會背概念非常容易被問倒,建議看一下這篇http://www.itdecent.cn/p/686b61c4a43d

判斷數(shù)組的方式你還可能會說Object.prototype.toString.call。
你以為到這里就結(jié)束了。
我就是在這里被某公司一面問暈了,因為平時開發(fā)用bind、call、applay非常少。干嘛要在這里用call,不知道,如果Object.prototype.toString.call沒有真的理解,可能還會背錯。
你如果只刷面經(jīng)而不真的去深入學習,你壓根就不知道call在這里的作用:傳參。
jQuery源碼很經(jīng)常喜歡用某方法.call,比如Array.indexOf.call()
如果是這么寫

function indexOf(arr,str){
return arr.indexOf(str);
}

那么

indexOf({},'')

就會報錯
如果是

function indexOf(arr,str){
return Array.indexOf.call(arr,str);
}
indexOf({},'')

就會給你返回-1,而不會報錯,保證代碼的平穩(wěn)運行下一條。
引用11年有人在stackOverflow對jQuery源碼為什么要return indexOf.call( array, elem )這么寫的提問
https://stackoverflow.com/questions/6569344/indexof-call-vs-array-indexof-in-jquerys-source
底下有人回答到:如果直接.方法,而你傳進去的array原型鏈上沒有此方法,就會報錯。

stackoverflow.png

忙去吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容