web 前端面試題
1 . 漸進增強 VS 優雅降級
漸進增強:針對低版本瀏覽器進行構建頁面,保證最基本的功能,然後再針對高階瀏覽器進行效果、互動等改進和追加功能達到更好的使用者體驗。
優雅降級:一開始就構建完整的功能,然後再針對低版本瀏覽器進行相容。
2 . webpack ,grunt ,gulp 之間的區別
Grunt是一個工作管理員,能大大提高您執行前端開發工作流程。
gulp.js - 基於流的自動化構建工具。
Webpack 是當下最熱門的前端資源模組化管理和打包工具。
3 . 什麼是物件
對像就是一些屬性和方法的集合
4 . 什麼是閉包
能訪問函式內部變數的函式
5 . for迴圈和for in迴圈有什麼區別
前者 index變數是 number,後者是string;前者迴圈array,後者迴圈object列舉型別包括物件原型屬性
6 . 前端跨域解決方法
後端允許前端跨域(cors),jsonp,設定代理(proxy)
7 .請求狀態碼
400--傳參欄位型別錯誤,401--授權失敗,403--禁止訪問,404--請求不存在; 301--永久重定向,302--臨時重定向(post 大部分會轉get),303--臨時重定向(如果post轉為強轉get),304--網址未修改,307--
8 .node.nodetype== 1 代表element ,2代表屬性,3代表文字節點,8代表註釋
9 .迴圈頁面節點 var el = document.querySelector("#id")
var child = el.firstChild;
var fragment = document.createDocumentFragment();
var node=null;
while(child ){
fragment.appendChild(child);
child = el.firstChild;
}
10 .正則表示式,reg
var reg = /\{\{,*\}\}/ig;
reg.test(string), string.match(reg) , reg.exec(string) // /g 全域性 /i 不分大小寫 ,/m 表示多行匹配 ;/s表示特殊字元圓點 . 中包含換行符;/u表示最近的一個字串,不重複;
; test ; match; exec(可以根據“()”分組) 等方法寫法不同; ?---懶惰匹配
11 在瀏覽器中輸入網址後回車發生了哪些事情
-
DNS解析
-
TCP連線(三次握手)
-
傳送HTTP請求
-
伺服器處理請求並返回HTTP報文
-
瀏覽器解析渲染頁面
-
連線結束
12 怎麼獲取伺服器最新的時間
根據 XMLHtmlRequest readyState 的值來區分: 0 表示建立XMLHtmlRequest對像未來初始化; 1 表示呼叫了opend方法,準備傳送資料; 2 表示呼叫了send方法,開始傳送請求了,並獲得伺服器響應頭資訊; 3 表示獲得頭部響應信並正在接收body資料; 4 表示接收資料完成;
所在當狀態為2 時就可以獲取 響應頭部 date 的時間;