1. 程式人生 > >面試第一家公司的面試題及答案(一)

面試第一家公司的面試題及答案(一)

1.談談對跨域的理解,怎麼處理跨域?

簡單的理解:瀏覽器或者JavaScript說處於安全方面的考慮,對同源策略的限制。

  1. 處理的方法一:porxy代理
    通過同域名的web伺服器建立一個代理,比如說杭州的伺服器後臺(www.hangzhou.com/porxy-hangzhouservice.php)來呼叫廣州伺服器(www.guangzhou.com/server.php)的服務,然後再把響應的結果返回給前端,這樣一來,前端呼叫杭州同域名的服務就和呼叫上海的服務效果相同了。

  2. 處理的方法二:JSONP(不支援POST請求)
    用於解決主流瀏覽器的跨資料訪問的問題。
    a.com中

<script>
	function jsonp(json){
	   alert(json["name"]);
	 }
</script>
<script src="http://a.com/json.js"></script>

b.com中

jsonp({'name':'小明', 'age':24});
  1. 處理的方法三:XHR2
    H5提供的XMLHttpRequestLevel2已經實現了跨域訪問以及其他的一些新功能。
    IE10以下的版本都不支援
    在伺服器端做一些小小的改造即可
    header(‘Access-Control-Allow-Origin:*’);
    header(‘Access-Control-Allow-Methods:POST, GET’);

2.閉包的概念是什麼?

  1. 閉包是定義在函式內部的函式
  2. 閉包是能訪問包含函式的變數(能夠讀取其他函式內部變數的函式)
  3. 即使包含函式執行完了,被閉包引用的變數也得不到釋放

三個條件:

  1. 訪問所在作用域
  2. 函式巢狀
  3. 在所在作用域外被呼叫

IIFE(立即執行函式):滿足1,不滿足2和3。IIFE(立即執行函式):滿足1,不滿足2和3。

3.vue中的關於生命函式的概念

  1. 什麼是vue生命週期?
    答: Vue 例項從建立到銷燬的過程,就是生命週期。也就是從開始建立、初始化資料、編譯模板、掛載Dom→渲染、更新→渲染、解除安裝等一系列過程,我們稱這是 Vue 的生命週期。

  2. vue生命週期的作用是什麼?
    答:它的生命週期中有多個事件鉤子,讓我們在控制整個Vue例項的過程時更容易形成好的邏輯。

  3. vue生命週期總共有幾個階段?
    答:它可以總共分為8個階段:建立前/後, 載入前/後,更新前/後,銷燬前/銷燬後

  4. 第一次頁面載入會觸發哪幾個鉤子?
    答:第一次頁面載入時會觸發 beforeCreate, created, beforeMount, mounted 這幾個鉤子

  5. DOM 渲染在 哪個週期中就已經完成?
    答:DOM 渲染在 mounted 中就已經完成了。

  6. 簡單描述每個週期具體適合哪些場景?
    答:生命週期鉤子的一些使用方法: beforecreate : 可以在這加個loading事件,在載入例項時觸發 created : 初始化完成時的事件寫在這裡,如在這結束loading事件,非同步請求也適宜在這裡呼叫 mounted : 掛載元素,獲取到DOM節點 updated : 如果對資料統一處理,在這裡寫上相應函式 beforeDestroy : 可以做一個確認停止事件的確認框 nextTick : 更新資料後立即操作dom

4.繪製三角形的css樣式

分析一波,三角形有很多種,但都離不開寬高為0,確定一條邊為有顏色的,再使其它邊顏色為透明transparent,程式碼如下:

#triangle{ /**這就是一個倒三角**/
   width:0;
   height:0,;
   border-top:100px solid red; /**正三角腳改為bottom**/
   border-right:50px solid transparent; /**如果要直角只需要一條邊顏色,一條邊為透明**/
   border-left:50px solid transparent;
}

5.頁面載入的過程

1.輸入地址
2.瀏覽器查詢域名的 IP 地址
3.這一步包括 DNS 具體的查詢過程,包括:瀏覽器快取->系統快取->路由器快取…
4.瀏覽器向 web 伺服器傳送一個 HTTP 請求
5.伺服器的永久重定向響應(從 http://a.com 到 http://www.a.com)
6.瀏覽器跟蹤重定向地址
7.伺服器處理請求
8.伺服器返回一個 HTTP 響應
9.瀏覽器顯示 HTML
10.瀏覽器傳送請求獲取嵌入在 HTML 中的資源(如圖片、音訊、視訊、CSS、JS等等)
11.瀏覽器傳送非同步請求