前端面試部分--20200616試題

一、基礎問答部分

  1. 請描述一下https的原理以及與http的區別
  2. position 有哪些屬性
  3. img 標籤間距問題的原理以及如何解決
  4. typeof 的原理是什麼,與 instanceOf 、 Object.prototype.toString.call() 的區別
  5. 0.1 + 0.2 === 0.3 嗎?爲什麼?

二、手寫部分

  1. 實現一個算法,來完成字符串相加,比如 “111” + ”2222“ = ”2333“
  2. 利用html css 編寫樣式,div垂直body居中、div內的text垂直居中,div高度等於body寬度的一半
  3. 類型比較

if([] == false){console.log(1)};
if({} == false){console.log(2)};
if([]){console.log(3)}
if([1]==[1]){console.log(4)} // 引用類型比對地址
if(!![]) {console.log(5)}

  1. bind函數實現
  2. trottle函數實現

三、框架部分

  1. 提供一個 VDOM 對象,寫一個 render 函數來讓他變成一顆 DOM 樹。(比如大概長這樣)
{
  type: 'h1',
  props: {
    className: "",
    style: "",
  },
  children: [] // 嵌套節點
}
  1. React組件通信是怎麼實現的
  2. mixin、hoc、render props、react-hooks的優劣如何
  3. Time Slice的理解
  4. 什麼是虛擬DOM呢

四、小程序部分

  1. 說一下微信小程序的原理
  2. 小程序的雙向綁定和vue哪裏不一樣
  3. 小程序的生命週期函數
  4. 哪些方法可以用來提高微信小程序的應用速度
  5. bindtap和catchtap的區別是什麼

五、算法部分

  1. 用隊列實現棧
  2. 數據流中的第K大元素
  3. 判斷子序列

position 有哪些屬性

position: static | relative | absolute | sticky | fixed
static: 默認值,元素出現在正常流之中;top,bottom,left,right,z-index均無效
relative: 生成相對定位的元素,相對其正常位置進行定位;對table類元素無效
absolute: 生成絕對定位的元素,相對於static定位以外的第一個父元素進行定位;絕對定位的元素可以設置外邊距,且不會與其他邊距合併
sticky: 可以理解爲是相對定位和固定定位的混合
fixed: 通過指定元素相對於屏幕視口的位置來定位元素,打印時,元素會出現在每頁的固定位置
參考說明: MDN

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”)
    能準確的判斷所有的類型。寫法相對繁瑣
    後續可參考資料:簡書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章