前端面試整理-JS部分

Crystalの前端面試整理-JS部分

Q:

  • [20200330] typeof 的原理,與 instanceOf 、 Object.prototype.toString.call() 的區別
  • [20200401] 手寫一個快速排序
  • [20200401] 0.1 + 0.2 === 0.3 嗎?爲什麼?
  • [20200401] 實現一個算法,來完成字符串相加,比如 “111” + ”2222“ = ”2333“
  • [20200401] 深度拷貝

A:

  • [20200330] typeof 的原理,與 instanceOf 、 Object.prototype.toString.call() 的區別
  • typeof
    JS在底層存儲變量的時候,會在變量的機器碼的低位1-3位存儲其類型信息
    000:對象
    010:浮點數
    100:字符串
    110:布爾
    1:整數
    對於undefined 和 null 來說,信息存儲有點特殊
    null 所有的機器碼都爲0,所以會被認爲是object
    undefined用-2^30整數來表示
    use: typeof function() {}
    能快速檢查undefined,string,number,boolean類型;
    當類型爲object,null,array時都會返回object,無法區分

  • instanceOf
    use:“str” instanceof String
    能檢測number, function, object類型
    不能檢測number,boolean,string類型

  • Object.prototype.toString.call()
    use: Object.prototype.toString.call(“str”)
    能準確的判斷所有的類型。寫法相對繁瑣
    後續可參考資料:簡書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章