2018前端面試題及參考答案整理(一)
前言:最近在找工作,遇到一些面試題,鄙人覺得還挺有代表性便與參考答案一併整理出來,以供廣大道友參考,還望指教
1.什麼是vue生命週期 ?
vue例項從被建立到銷燬的一系列過程就叫vue生命週期. 也就是從開始建立、初始化資料、編譯模版、掛載DOM→渲染、更新、渲染、解除安裝等一系列過程。
2.axios的特點有哪些
- axios是一個基於promise的HTTP庫,支援promise的所有API
- 它可以攔截請求和響應
- 它可以轉換請求資料和響應資料,並對響應回來的內容自動轉換為json型別的資料
- 它安全性更高,客戶端支援防禦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條)
- 所有的標記都必須有一個相應的結束標記
- 所有標籤的元素和屬性的名字都必須使用小寫
- 所有的xml標記都必須合理巢狀
- 所有的屬性值都必須用引號“”括起來
- 所有的<和&特殊符號用編碼表示
- 給所有屬性賦一個值
9.對web標準化(或網站重構)知道哪些相關的知識,簡述幾條你知道的Web標準?
網頁主要有三部分組成:結構(Structrue)、表現(presentation)和行為(Behavior)。對應的網站標準也分為三方面:
- 結構化標準語言,主要包括XHTML和XML;
- 表現標準主要包括css
- 行為標準主要包括物件模型(如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檔案傳過去。