1. 程式人生 > >2018前端面試題及參考答案整理(一)

2018前端面試題及參考答案整理(一)

前言:最近在找工作,遇到一些面試題,鄙人覺得還挺有代表性便與參考答案一併整理出來,以供廣大道友參考,還望指教

1.什麼是vue生命週期 ?  

vue例項從被建立到銷燬的一系列過程就叫vue生命週期. 也就是從開始建立、初始化資料、編譯模版、掛載DOM→渲染、更新、渲染、解除安裝等一系列過程。

2.axios的特點有哪些

  1. axios是一個基於promise的HTTP庫,支援promise的所有API
  2. 它可以攔截請求和響應
  3. 它可以轉換請求資料和響應資料,並對響應回來的內容自動轉換為json型別的資料
  4. 它安全性更高,客戶端支援防禦XSRF

3.vue父元件怎麼給子元件傳值?

父元件的資料要通過prop傳到子元件

4.請說下具體使用vue的理解

我也不知道題目到底問些什麼(是問vue的具體使用過程還是問使用vue的優缺點呢?)

5.active-class是哪個元件的屬性?巢狀路由怎麼定義?

vue-router模組的router-link元件

  const routes = [  
     { path: "/", redirect: "/home" },//重定向,指向了home元件  
     {  
         path: "/home", component: home,  
        children: [  
            { path: "/home/game", component: game }  
         ]  
    }  
 ] 

6.談談javascript陣列排序方法sort()的使用,重點介紹引數使用及內部機制?

語法:arrayObject.sort(sortby)

引數sortby可選,規定排序順序,必須是函式

注:如果呼叫該方法是沒有使用引數,將按字元編碼的順序進行排序,要實現這一點,首先應把陣列的元素都轉換成字串,以便進行比較。

如果想按照其他的標準進行排序,就需要兩個比較函式,該函式要比較兩個值,然後返回一個用於說明這兩個值的相對排序的數字。比較函式應該具有兩個引數a和b,其返回值如下:

若a<b,則返回一個小於0的值

若a=b,則返回一個0

若a>b,則返回一個大於0的值

7.簡述DIV元素和span元素的區別

div是一個塊級元素,span是內嵌元素。塊元素相當於內嵌元素在前後各加了一個換行。其實,塊元素和行內元素也不是一成不變的,只要給塊元素定義display:inline,塊元素就變成了內嵌元素,同樣的,給內嵌元素定義了display:block就變成了塊元素了。

8.說幾條XHTML規範的內容(至少3條)

  1. 所有的標記都必須有一個相應的結束標記
  2. 所有標籤的元素和屬性的名字都必須使用小寫
  3. 所有的xml標記都必須合理巢狀
  4. 所有的屬性值都必須用引號“”括起來
  5. 所有的<和&特殊符號用編碼表示
  6. 給所有屬性賦一個值

9.對web標準化(或網站重構)知道哪些相關的知識,簡述幾條你知道的Web標準?

網頁主要有三部分組成:結構(Structrue)、表現(presentation)和行為(Behavior)。對應的網站標準也分為三方面:

  1. 結構化標準語言,主要包括XHTML和XML;
  2. 表現標準主要包括css
  3. 行為標準主要包括物件模型(如W3C  DOM)、ECMAScript等

10.localstorage和sessionstorage是什麼?區別是什麼?

localstorage和sessionstorage一樣都是用來儲存客戶端臨時資訊的物件,他們均只能儲存字串型別物件

localstorage生命週期是永久的,這意味著除非使用者在瀏覽器提供的UI上清除localstorage資訊,否則這些資訊將永遠存在。

sessionstorage生命週期為當前視窗或標籤,一旦視窗或標籤被永久關閉了,那麼所有通過sessionstorage儲存的資料也將被清空。

不同瀏覽器無法共享localstorage或sessionstorage中的資訊。相同瀏覽器的不同頁面可以共享相同的localstorage(頁面屬於相同的域名和埠),但是不同頁面或標籤間無法共享sessionstorage。這裡需要注意的是,頁面及標籤僅指頂級視窗,如果一個標籤頁包含多個iframe標籤他們屬於同源頁面,那麼他們之間是可以共享sessionstorage的。

11.如何獲取一個元素的屬性值

element.getAttribute('屬性名稱')

12.舉例說明一下什麼是事件委託?

事件委託就是利用冒泡的原理,把事件加到父元素或祖先元素上,觸發執行效果

    <ul id="ul1">
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    <script>
        window.onload = function () { 
                var oUl = document.getElementById('ul1');
                oUl.onclick = function (ev) {
                        var ev = ev || window.event;
                        var target = ev.target || ev.srcElement;
                        if(target.nodeName.toLowerCase() == 'li') {
                                alert(target.innerHTML)
                        }
                }
        }
    </script>

13.json和jsonp的區別?

json返回的是一串json格式資料;而jsonp返回的是指令碼程式碼(包含一個函式呼叫)

jsonp的全名叫做json with padding,就是把json物件用符合js語法的形式包裹起來以使其他的網站可以請求到,也就是將json封裝成js檔案傳過去。