1. 程式人生 > >web前端面試題總結

web前端面試題總結

1、javascript主要的資料型別:String、Number、boolean、Object、Null、Undefined

2、css盒子模型屬性包括:margin、border、padding、content

3、DOCTYPE 不存在或格式不正確會導致文件以混雜模式呈現

4、TCP是   傳輸控制 的協議,UDP是 使用者資料報 的協議

5、css實現垂直水平居中?不少於3中方法。

垂直居中:
   1、line-height
        text-align: center;

   2、position: absolute;
        left: 50%;
        top: 50%;
        margin-left:-寬度/2
        margin-top:-高度/2

   3、父元素:display: -webkit-box;
            display: -webkit-flex;
            display: flex;
            -webkit-box-orient: vertical;
            box-orient: vertical;
            -webkit-flex-direction: column;
            flex-direction: column;
            -webkit-box-orient: vertical;
            box-orient: vertical;
            -webkit-flex-direction: column;
            flex-direction: column;
    4、position: absolute;
         top: calc(50% - 高度一半);
         left: calc(50% - 寬度一半);
    5、position: absolute;
         top: 50%;
         left: 50%;
         transform: translate(-50%, -50%); 
    6、margin: 50% auto 0;
         tarnsform: translateY(-50%);

6、簡述cookie、sessionStorage和localStorage 的區別

1、cookie資料始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和伺服器間來回傳遞,而sessionStorage和localStorage不會自動把資料傳送給伺服器,僅在本地儲存。cookie資料還有路徑(path)的概念,可以限制cookie只屬於某個路徑下 
2、儲存大小限制也不同,cookie資料不能超過4K,同時因為每次http請求都會攜帶cookie、所以cookie只適合儲存很小的資料,如會話標識。sessionStorage和localStorage雖然也有儲存大小的限制,但比cookie大得多,可以達到5M或更大 
3、資料有效期不同,sessionStorage:僅在當前瀏覽器視窗關閉之前有效;localStorage:始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料;cookie:只在設定的cookie過期時間之前有效,即使視窗關閉或瀏覽器關閉 
4、作用域不同,sessionStorage不在不同的瀏覽器視窗中共享,即使是同一個頁面;localstorage在所有同源視窗中都是共享的;cookie也是在所有同源視窗中都是共享的 

7、跨域請求資源的方法有哪些?

(1)JSONP(jsonp跨域get請求) 
     這種方式主要是通過動態建立一個script標籤,瀏覽器對script的資源引用沒有同源限制,同時資源載入到頁面後會立即執行;(建立script標籤向不同域提交http請求的不會被拒絕的方法,jsonp標籤的src屬性是沒有跨域限制的)
     實際專案中JSONP通常用來獲取json格式資料,這時前後端通常約定一個引數callback,該引數的值,就是處理返回資料的函式名稱;
缺點:這種方式無法傳送post請求,另外要確定jsonp的請求是否失敗並不容易,大多數框架的實現都是結合超時時間來判斷。
 
(2)proxy 代理
    這種方式首先將請求傳送給後臺伺服器,通過伺服器來發送請求,然後將請求的結果傳遞給前端;
需要注意的是如果你代理的是https協議的請求,那麼你的proxy首先需要信任該證書或者忽略證書檢查,否則你的請求無法成功。
 
(3)cors
    當你使用XMLHttpRequest傳送請求時,瀏覽器發現該請求不符合同源策略,會給該請求頭origin,後臺進行一系列處理,如果確定接受請求則在返回結果加入一個響應頭Access-Control-Allow-Origin;
瀏覽器判斷該響應頭中是否包含Origin的值,如果有則瀏覽器會處理響應,我們就可以拿到響應資料,如果不包含瀏覽器直接駁回,這時我們無法拿到響應資料; post請求的content-type不是常規的三個:application/x-www-form-urlencoded(使用HTTP的post方式提交表單)、multipart/form-data(同上,但主要用於表單提交時伴隨檔案上傳的場合)、text/plain(純文字) post請求的payload為text/html payload指在http中,應該是post請求時所攜帶的有效資料; 有一種跨域需要特別注意就是https協議下發送https請求,除了使用proxy代理外其他方法都無解,會被瀏覽器直接block掉。

8、一個頁面從輸入URL到頁面載入顯示完成,這個過程中發生了什麼?

1、瀏覽器根據請求的URL交給DNS域名解析,找到真實IP,向伺服器發起請求;
2、伺服器交給後臺處理完成後返回資料,瀏覽器接收檔案(HTML、JS、CSS、圖象等);
3、瀏覽器對載入到的資源(HTML、JS、CSS等)進行語法解析,建立相應的內部資料結構(如HTML的DOM);
4、載入解析到的資原始檔,渲染頁面,完成

9、對於網站優化,有哪些方法?

1、html語義化
2、減少重複程式碼,壓縮css,js程式碼大小
3、背景圖片大小及數量
4、減少http請求,合理設定快取
5、圖片懶載入
6、減少cookie傳輸
7、js中減少DOM操作,避免使用eval和 Function,減少作用域鏈查詢
8、CDN加速
9、反向代理
    1、傳統代理伺服器位於瀏覽器一側,代理瀏覽器將http請求傳送到網際網路上,而反向代理伺服器位於網站機房一側,代理網站web伺服器接收http請求。
   2、反向代理也可以實現負載均衡的功能,而通過負載均衡構建的應用叢集可以提高系統總體處理能力,進而改善網站高併發情況下的效能。