您好,登錄后才能下訂單哦!
面試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,"");//去除前后空白符
}
}
關于面試JavaScript的題目是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。