分享JavaScript面試題部分
今天好程式設計師web 前端培訓小編要跟大家分享的是關於 JavaScript 面試題部分內容。準備參加 web 前端面試的小夥伴們一起看一看吧,希望能夠對大家有所幫助!
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 部分的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2704623/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python開發面試題及部分答案分享!Python面試題
- 面試題整理—CSS部分面試題CSS
- JAVA面試題 java部分Java面試題
- JavaScript面試題JavaScript面試題
- JavaScript 面試題JavaScript面試題
- 面試題總結-Java部分面試題Java
- 【PHP】面試題整理PHP部分PHP面試題
- JAVA面試題-CORE JAVA部分Java面試題
- 好程式設計師web前端教程分享JavaScript面試題程式設計師Web前端JavaScript面試題
- 好程式設計師web前端培訓分享HTML/CSS部分面試題程式設計師Web前端HTMLCSS面試題
- JavaScript面試題整理JavaScript面試題
- JavaScript面試題目,JavaScript面試題
- 好程式設計師web前端教程分享HTML/CSS部分常見面試題程式設計師Web前端HTMLCSS面試題
- 面試題總結-Android部分面試題Android
- 前端常見面試題(js部分)前端面試題JS
- 前端常見的部分面試題前端面試題
- 今日面試題分享面試題
- JAVA最新面試題分享Java面試題
- 【Java面試】 Javascript常見面試題!JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題五程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題四程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題三程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題二程式設計師JavaScript面試題
- 好程式設計師Java教程分享JavaScript常見面試題一程式設計師JavaScript面試題
- javascript經典面試題JavaScript面試題
- 自描述C++部分面試題集C++面試題
- 面試題收集——Java基礎部分(一)面試題Java
- 面試題分享---面試八股文面試題
- rsync和NFS有哪些面試題?Linux面試題分享NFS面試題Linux
- 防火牆企業面試題iptalbes Linux面試題分享防火牆面試題Linux
- 前端面試題 | JS部分(附帶答案)前端面試題JS
- 面試題總結-演算法部分面試題演算法
- 面試問題記錄 一 (基礎部分)面試
- iOS底層面試題---OC語法部分iOS面試題
- iOS底層面試題—OC語法部分iOS面試題
- 微軟經典面試100題系列(部分)微軟面試
- 前端面試題(4)JavaScript前端面試題JavaScript
- 前端面試題 之 JavaScript前端面試題JavaScript