更多課程 選擇中心

Web培訓
美國上市教育機構

400-111-8989

Web培訓

Web前端面試題之JavaScript部分

  • 發布:Web前端培訓
  • 來源:web前端面試
  • 時間:2019-10-21 15:40

今天小編要跟大家分享的文章是關于web前端面試題中HTML/CSS部分的內容。準備參加web前端面試的小伙伴們來和小編一起看一看吧,希望能夠對大家有所幫助!

JavaScript部分

1、怎樣添加、移除、移動、復制、創建和查找節點?

1)創建新節點

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

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

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

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

appendChild() //添加

removeChild() //移除

replaceChild() //替換

insertBefore() //插入

3)查找

getElementsByTagName() //通過標簽名稱

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

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

2、實現一個函數clone,可以對JavaScript中的5種主要的數據類型(包括Number、String、Object、Array、Boolean)進行值復制。

/**

* 對象克隆

* 支持基本數據類型及對象

* 遞歸方法

*/

functionclone(obj){

varo;

switch(typeof obj){

case"undefined":

break;

case"string":

o = obj + "";

break;

case"number":

o = obj - 0;

break;

case"boolean":

o = obj;

break;

case"object": // object 分為兩種情況 對象(Object)或數組(Array)

if(obj === null){

o = null;

}else{

if(Object.prototype.toString.call(obj).slice(8, -1) === "Array"){

o = [];

for(vari = 0;i obj.length;i++){

o.push(clone(obj[i]));

}

}else{

o = {};

for(varkinobj){

o[k] = clone(obj[k]);

}

}

}

break;

default:

o = obj;

break;

}

returno;

}

3、如何消除一個數組里面重復的元素?

// 方法一:

vararr1 =[1,2,2,2,3,3,3,4,5,6],

arr2 = [];

for(vari = 0,len = arr1.length;i< len;i++){

if(arr2.indexOf(arr1[i]) < 0){

arr2.push(arr1[i]);

}

}

document.write(arr2);// 1,2,3,4,5,6

4、想實現一個對頁面某個節點的拖曳?如何做?(使用原生JS)。

5、在Javascript中什么是偽數組?如何將偽數組轉化為標準數組?

偽數組(類數組):無法直接調用數組方法或期望length屬性有什么特殊的行為,但仍可以對真正數組遍歷方法來遍歷它們。典型的是函數的argument參數,還有像調用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對象都屬于偽數組。可以使用Array.prototype.slice.call(fakeArray)將數組轉化為真正的Array對象。

functionlog(){

varargs = Array.prototype.slice.call(arguments);

//為了使用unshift數組方法,將argument轉化為真正的數組

args.unshift('(app)');

console.log.apply(console,args);

};

6、Javascript中callee和caller的作用?

caller是返回一個對函數的引用,該函數調用了當前函數;

callee是返回正在被執行的function函數,也就是所指定的function對象的正文。

7、請描述一下cookies,sessionStorage和localStorage的區別

sessionStorage用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用于持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。

web storage和cookie的區別

Web Storage的概念和cookie相似,區別是它是為了更大容量存儲設計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調用。

除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作為HTTP規范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數據而生。

8、手寫數組快速排序

關于快排算法的詳細說明,可以參考阮一峰老師的文章快速排序

“快速排序”的思想很簡單,整個排序過程只需要三步:

(1)在數據集之中,選擇一個元素作為”基準”(pivot)。

(2)所有小于”基準”的元素,都移到”基準”的左邊;所有大于”基準”的元素,都移到”基準”的右邊。

(3)對”基準”左邊和右邊的兩個子集,不斷重復第一步和第二步,直到所有子集只剩下一個元素為止。

9、統計字符串”aaaabbbccccddfgh”中字母個數或統計最多字母數。

varstr = "aaaabbbccccddfgh";

varobj = {};

for(vari=0;istr.length;i++){

varv = str.charAt(i);

if(obj[v] & obj[v].value == v){

obj[v].count = ++ obj[v].count;

}else{

obj[v] = {};

obj[v].count = 1;

obj[v].value = v;

}

}

for(key inobj){

document.write(obj[key].value +'='+obj[key].count+' ');// a=4 b=3 c=4 d=2 f=1 g=1 h=1

}

10、寫一個function,清除字符串前后的空格。(兼容所有瀏覽器)

functiontrim(str){

if(str & typeof str === "string"){

returnstr.replace(/(^s*)|(s*)$/g,"");//去除前后空白符

}

}

以上就是小編今天為大家分享的關于Web前端面試題之JavaScript部分的文章,希望本篇文章能夠對正在從事web前端工作的小伙伴們有所幫助。想要了解更多web前端相關知識記得關注達內web培訓官網。最后祝愿小伙伴們面試成功!

【免責聲明:本文圖片及文字信息均由小編轉載自網絡,旨在分享提供閱讀,版權歸原作者所有,如有侵權請聯系我們進行刪除。】

預約申請免費試聽課

填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

上一篇:Web前端面試題之HTML/CSS部分
下一篇:Web前端面試之HTML5相關面試題及答案匯總

Web前端面試之HTML5相關面試題及答案匯總

Web前端面試題之JavaScript部分

Web前端面試題之HTML/CSS部分

Web前端工程師參加面試要會的JavaScript測試題

選擇城市和中心
黑龍江省

吉林省

河北省

貴州省

云南省

廣西省

海南省

开心激情五月天