【備戰秋招Day 1】經典面試題1-4及在線編程題1-3答案

經典面試題

1.什麼是盒子模型?

在網頁中,一個元素佔有空間的大小由幾個部分構成,其中包括元素的內容(content),元素的內邊距(padding),元素的邊框(border),元素的外邊距(margin)四個部分。這四個部分佔有的空間中,有的部分可以顯示相應的內容,而有的部分只用來分隔相鄰的區域或區域。4個部分一起構成了css中元素的盒模型。

2.簡述一下src與href的區別

href 是指向網路資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,用於超鏈接。

src是指向外部資源的位置,指向的內容將會嵌入到文檔中當前標籤所在位置;在請求src資源時會將其指向的資源下載並應用到文檔內,例如js腳本,img圖片和frame等元素。當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源載入、編譯、執行完畢,圖片和框架等元素也如此,類似於將所指向資源嵌入當前標籤內。這也是為什麼將js腳本放在底部而不是頭部。

3.簡述同步和非同步的區別

同步是阻塞模式,非同步是非阻塞模式。

同步就是指一個進程在執行某個請求的時候,若該請求需要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;

非同步是指進程不需要一直等下去,而是繼續執行下面的操作,不管其他進程的狀態。當有消息返回時系統會通知進程進行處理,這樣可以提高執行的效率。

4.怎樣添加、移除、移動、複製、創建和查找節點?

1)創建新節點

createDocumentFragment() //創建一個DOM片段

createElement() //創建一個具體的元素

createTextNode() //創建一個文本節點

2)添加、移除、替換、插入

appendChild() //添加

removeChild() //移除

replaceChild() //替換

insertBefore() //插入

3)查找

getElementsByTagName() //通過標籤名稱

getElementsByName() //通過元素的Name屬性的值

getElementById() //通過元素Id,唯一性

在線編程題

1.查找數組元素位置

function indexOf(arr, item) { if (Array.prototype.indexOf){ return arr.indexOf(item); } else { for (var i = 0; i < arr.length; i++){ if (arr[i] === item){ return i; } } } return -1;}

2.數組求和

不考慮演算法複雜度,用遞歸做:

function sum(arr) { var len = arr.length; if(len == 0){ return 0; } else if (len == 1){ return arr[0]; } else { return arr[0] + sum(arr.slice(1)); }}

常規循環:

function sum(arr) { var s = 0; for (var i=arr.length-1; i>=0; i--) { s += arr[i]; } return s;}

函數式編程 map-reduce:

function sum(arr) { return arr.reduce(function(prev, curr, idx, arr){ return prev + curr; });}

forEach遍歷:

function sum(arr) { var s = 0; arr.forEach(function(val, idx, arr) { s += val; }, 0); return s;};

eval:

function sum(arr) { return eval(arr.join("+"));};

3.移除數組中的元素

題目要求不改變原數組,所以可以聲明一個數組a用於保存arr中不同於item的值,最後將a返回。

function remove(arr, item) { //聲明一個新數組保存結果 var a = []; //循環遍歷 for(var i=0; i < arr.length; i++){ //如果arr[i]不等於item,就加入數組a if(arr[i] != item){ a.push(arr[i]); } } return a; }

推薦閱讀:

Angular 應用瘦身記——比 jQuery 更小的 TodoMVC
我們所說的前端框架與庫的區別?

TAG:前端开发 | 前端工程师 | 前端框架 |