記一次面試記錄

如下都是這次面試問題的我的理解,僅供參考,歡迎指正,共勉。

  1. js中有哪些數據類型,它們在內存中得存在形式?
    基本類型存儲在空間裏面:string/number/boolean/undefind/null
    引用類型存在空間裏面:object/array
  2. 移動端點擊時有延時嗎?延時多長時間?是什麼緣由形成的?有什麼改進方法?
    移動端點擊時有200~300ms的延時,是由於移動端會有一些默認行爲,好比雙擊縮放、雙擊滾動等行爲,尤爲是雙擊縮放,是爲桌面網站在移動端的瀏覽體驗設計的,而在用戶點擊時,瀏覽器會優先判斷用戶是否要觸發默認行爲。
    方案一:禁用縮放(會影響功能不建議)
    <meta name="viewport" content="user-scalable=no">
    <meta name="viewport" content="initial-scale=1,maximum-scale=1">
    方案二:更改默認的視口寬度
    它沒有徹底禁用縮放,而只是禁用了瀏覽器默認的雙擊縮放行爲,但用戶仍然能夠經過雙指縮放操做來縮放頁面。
    <meta name="viewport" content="width=device-width">
    方案三:使用FastClick等比較成熟的外部插件
    FastClickFT Labs 專門爲解決移動端瀏覽器 300 毫秒點擊延遲問題所開發的一個輕量級的庫。
    FastClick的實現原理是在檢測到touchend事件的時候,會經過DOM自定義事件當即出發模擬一個click事件,並把瀏覽器在300ms以後的click事件阻止掉。
  3. 移動端點擊一下頁面觸發的事件順序?
    事件的執行順序會受觸摸的力度和長短,還有是否移動有關。
    通常執行順序爲:
    touchstart => touchmove => touchend => touchcancel(通常不會執行) => click
  4. 做用域鏈有了解嗎?
    JavaScript的變量都是對象的屬性,而該對象可能又是其它對象的屬性,而全部的對象都是全局對象的屬性,因此這些對象的關係能夠看做是一條鏈,
    鏈頭就是變量所處的對象,鏈尾就是全局對象
  5. 閉包有了解嗎?通常使用場景?
    閉包是函數和聲明該函數的詞法環境的組合。
    一般使用只有一個方法的對象的地方,均可以使用閉包。
    詳細解釋起來太長,網上有不少種解釋,均可以參考,這裏是MDN對閉包的專業解釋。
  6. 設計模式當中的單例模式瞭解嗎?
    單例模式也稱爲單子模式或單體模式,規則是保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
    《JavaScript高級程序設計》中也稱之爲對象字面量模式。
    如下爲代碼示例:
    //單例模式抽象,分離建立對象的函數和判斷對象是否已經建立
        var getSingle = function (fn) {
            var result;
            return function () {
                return result || ( result = fn.apply(this, arguments) );
            }
        };
  7. 發起一個ajax請求的流程是怎樣的。
    一、建立XMLHttpRequestd對象實例
    二、鏈接服務器
    三、向服務器發送請求
    四、接受服務器的返回
  8. 在瀏覽器中輸入一段url地址會發生什麼?
    一、瀏覽器解析
    二、查詢緩存
    三、DNS查詢
    四、創建連接
    五、發送HTTP請求
    六、服務器發送響應
    七、客戶端收到頁面
    八、解析HTML
    九、構建渲染樹
    十、瀏覽器佈局渲染
  9. http與https的區別?
    一、http 的URL 以http:// 開頭,https以https:// 開頭。
    二、http 標準端口是80 ,https是443。
    三、https 協議須要到ca申請證書,http不須要。
    四、http 是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議。
    五、http 的鏈接很簡單,是無狀態的,https協議是由SSL+http協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全。
  10. ES6中得箭頭函數新特性是什麼?
    一、對 this 的關聯
    二、new 不可用
    三、this 不可變
    四、沒有arguments對象
    五、等等

其餘

  1. 移動端有哪些性能方面的優化? 網絡/資源/渲染/腳本 優化等
  2. dns是什麼?百科 - DNS
  3. vue的生命週期都有哪些?
  4. git有使用過嗎?git的版本管理了解嗎?
  5. app用戶輸入帳號密碼,先後端的驗證流程是怎樣的?
  6. 爲何想換工做呢,離職的緣由是什麼?

大概就這些吧,中間還有其餘問題,記不太清了。vue