記一次面試記錄
時間 2019-12-06
標籤
記
一次
面試
記錄
如下都是這次面試問題的我的理解,僅供參考,歡迎指正,共勉。
js中有哪些數據類型,它們在內存中得存在形式? 基本類型 存儲在棧 空間裏面:string/number/boolean/undefind/null 引用類型 存在堆 空間裏面:object/array
移動端點擊時有延時嗎?延時多長時間?是什麼緣由形成的?有什麼改進方法? 移動端點擊時有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等比較成熟的外部插件 FastClick 是 FT Labs 專門爲解決移動端瀏覽器 300 毫秒點擊延遲問題所開發的一個輕量級的庫。 FastClick的實現原理是在檢測到touchend事件的時候,會經過DOM自定義事件當即出發模擬一個click事件,並把瀏覽器在300ms以後的click事件阻止掉。
移動端點擊一下頁面觸發的事件順序? 事件的執行順序會受觸摸的力度和長短,還有是否移動有關。 通常執行順序爲: touchstart => touchmove => touchend => touchcancel(通常不會執行) => click
做用域鏈有了解嗎? JavaScript的變量都是對象的屬性,而該對象可能又是其它對象的屬性,而全部的對象都是全局對象的屬性,因此這些對象的關係能夠看做是一條鏈, 鏈頭就是變量所處的對象,鏈尾就是全局對象
閉包有了解嗎?通常使用場景? 閉包是函數和聲明該函數的詞法環境的組合。 一般使用只有一個方法的對象的地方,均可以使用閉包。 詳細解釋起來太長,網上有不少種解釋,均可以參考,這裏是MDN 對閉包的專業解釋。
設計模式當中的單例模式瞭解嗎? 單例模式也稱爲單子模式或單體模式,規則是保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 《JavaScript高級程序設計》中也稱之爲對象字面量模式。 如下爲代碼示例://單例模式抽象,分離建立對象的函數和判斷對象是否已經建立
var getSingle = function (fn) {
var result;
return function () {
return result || ( result = fn.apply(this, arguments) );
}
};
發起一個ajax請求的流程是怎樣的。 一、建立XMLHttpRequestd對象實例 二、鏈接服務器 三、向服務器發送請求 四、接受服務器的返回
在瀏覽器中輸入一段url地址會發生什麼? 一、瀏覽器解析 二、查詢緩存 三、DNS查詢 四、創建連接 五、發送HTTP請求 六、服務器發送響應 七、客戶端收到頁面 八、解析HTML 九、構建渲染樹 十、瀏覽器佈局渲染
http與https的區別? 一、http 的URL 以http:// 開頭,https以https:// 開頭。 二、http 標準端口是80 ,https是443。 三、https 協議須要到ca申請證書,http不須要。 四、http 是超文本傳輸協議,信息是明文傳輸,https 則是具備安全性的ssl加密傳輸協議。 五、http 的鏈接很簡單,是無狀態的,https協議是由SSL+http協議構建的可進行加密傳輸、身份認證的網絡協議 要比http協議安全。
ES6中得箭頭函數新特性是什麼? 一、對 this 的關聯 二、new 不可用 三、this 不可變 四、沒有arguments對象 五、等等
其餘
移動端有哪些性能方面的優化? 網絡/資源/渲染/腳本 優化等
dns是什麼?百科 - DNS
vue的生命週期都有哪些?
git有使用過嗎?git的版本管理了解嗎?
app用戶輸入帳號密碼,先後端的驗證流程是怎樣的?
爲何想換工做呢,離職的緣由是什麼?
大概就這些吧,中間還有其餘問題,記不太清了。vue