面試JavaScript的題目是怎樣的,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)東興,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
1、怎樣添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)?
1)創(chuàng)建新節(jié)點(diǎn)
createDocumentFragment() //創(chuàng)建一個(gè)DOM片段
createElement() //創(chuàng)建一個(gè)具體的元素
createTextNode() //創(chuàng)建一個(gè)文本節(jié)點(diǎn)
2)添加、移除、替換、插入
appendChild() //添加
removeChild() //移除
replaceChild() //替換
insertBefore() //插入
3)查找
getElementsByTagName() //通過標(biāo)簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性
2、實(shí)現(xiàn)一個(gè)函數(shù)clone,可以對(duì)JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進(jìn)行值復(fù)制。
/**
* 對(duì)象克隆
* 支持基本數(shù)據(jù)類型及對(duì)象
* 遞歸方法
*/
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 分為兩種情況 對(duì)象(Object)或數(shù)組(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、如何消除一個(gè)數(shù)組里面重復(fù)的元素?
// 方法一:
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、想實(shí)現(xiàn)一個(gè)對(duì)頁面某個(gè)節(jié)點(diǎn)的拖曳?如何做?(使用原生JS)。
5、在Javascript中什么是偽數(shù)組?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組?
偽數(shù)組(類數(shù)組):無法直接調(diào)用數(shù)組方法或期望length屬性有什么特殊的行為,但仍可以對(duì)真正數(shù)組遍歷方法來遍歷它們。典型的是函數(shù)的argument參數(shù),還有像調(diào)用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對(duì)象都屬于偽數(shù)組??梢允褂肁rray.prototype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對(duì)象。
functionlog(){
varargs = Array.prototype.slice.call(arguments);
//為了使用unshift數(shù)組方法,將argument轉(zhuǎn)化為真正的數(shù)組
args.unshift('(app)');
console.log.apply(console,args);
};
6、Javascript中callee和caller的作用?
caller是返回一個(gè)對(duì)函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù);
callee是返回正在被執(zhí)行的function函數(shù),也就是所指定的function對(duì)象的正文。
7、請(qǐng)描述一下cookies,sessionStorage和localStorage的區(qū)別
sessionStorage用于本地存儲(chǔ)一個(gè)會(huì)話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁面才能訪問并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲(chǔ),僅僅是會(huì)話級(jí)別的存儲(chǔ)。而localStorage用于持久化的本地存儲(chǔ),除非主動(dòng)刪除數(shù)據(jù),否則數(shù)據(jù)是永遠(yuǎn)不會(huì)過期的。
web storage和cookie的區(qū)別
web Storage的概念和cookie相似,區(qū)別是它是為了更大容量存儲(chǔ)設(shè)計(jì)的。Cookie的大小是受限的,并且每次你請(qǐng)求一個(gè)新的頁面的時(shí)候Cookie都會(huì)被發(fā)送過去,這樣無形中浪費(fèi)了帶寬,另外cookie還需要指定作用域,不可以跨域調(diào)用。
除此之外,web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發(fā)者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務(wù)器進(jìn)行交互,作為HTTP規(guī)范的一部分而存在 ,而web Storage僅僅是為了在本地“存儲(chǔ)”數(shù)據(jù)而生。
8、手寫數(shù)組快速排序
關(guān)于快排算法的詳細(xì)說明,可以參考阮一峰老師的文章快速排序
“快速排序”的思想很簡單,整個(gè)排序過程只需要三步:
(1)在數(shù)據(jù)集之中,選擇一個(gè)元素作為”基準(zhǔn)”(pivot)。
(2)所有小于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的左邊;所有大于”基準(zhǔn)”的元素,都移到”基準(zhǔn)”的右邊。
(3)對(duì)”基準(zhǔn)”左邊和右邊的兩個(gè)子集,不斷重復(fù)第一步和第二步,直到所有子集只剩下一個(gè)元素為止。
9、統(tǒng)計(jì)字符串”aaaabbbccccddfgh”中字母個(gè)數(shù)或統(tǒng)計(jì)最多字母數(shù)。
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、寫一個(gè)function,清除字符串前后的空格。(兼容所有瀏覽器)
functiontrim(str){
if(str & typeof str === "string"){
returnstr.replace(/(^s*)|(s*)$/g,"");//去除前后空白符
}
}
關(guān)于面試JavaScript的題目是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。