1.javascript的typeof返回哪些數(shù)據(jù)類(lèi)型
string Object/null number function boolean underfind
2.例舉3種強(qiáng)制類(lèi)型轉(zhuǎn)換和2種隱式類(lèi)型轉(zhuǎn)換?
強(qiáng)制(parseInt,parseFloat,number)
隱式(==? ===? + * / %? ++ --)
3.split() join() 的區(qū)別
前者是切割成數(shù)組的形式,后者是將數(shù)組轉(zhuǎn)換成字符串
4.數(shù)組方法pop() push() unshift() shift()
Push()尾部添加 pop()尾部刪除
Unshift()頭部添加 shift()頭部刪除
5.事件綁定和普通事件有什么區(qū)別
區(qū)別就是普通事件只支持單個(gè)事件,而事件綁定可以添加多個(gè)事件,就這么簡(jiǎn)單。
6.IE和DOM事件流的區(qū)別
1.執(zhí)行順序不一樣、
2.參數(shù)不一樣
3.事件加不加on
4.this指向問(wèn)題
7.IE和標(biāo)準(zhǔn)下有哪些兼容性的寫(xiě)法
Var ev = ev || window.event //獲取event對(duì)象
document.documentElement.clientWidth || document.body.clientWidth//瀏覽器窗口的大小
Var target = ev.srcElement||ev.target //獲取事件源
8.ajax請(qǐng)求的時(shí)候get 和post方式的區(qū)別
一個(gè)在url后面 一個(gè)放在虛擬載體里面
有大小限制
安全問(wèn)題
應(yīng)用不同 一個(gè)是論壇等只需要請(qǐng)求的,一個(gè)是類(lèi)似修改密碼的
9.call和apply的區(qū)別
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
10.ajax請(qǐng)求時(shí),如何解析json數(shù)據(jù)
使用eval parse 鑒于安全性考慮 使用parse更靠譜
12.寫(xiě)一個(gè)獲取非行間樣式的函數(shù)
function getStyle(obj,attr,value){
if(!value){
if(obj.currentStyle){
return obj.currentStyle(attr)
}else{
obj.getComputedStyle(attr,false)
}
}else{
obj.style[attr]=value
}
}
13.事件委托是什么
讓利用事件冒泡的原理,讓自己的所觸發(fā)的事件,讓他的父元素代替執(zhí)行!
(1)冒泡型事件:事件按照從最特定的事件目標(biāo)到最不特定的事件目標(biāo)(document對(duì)象)的順序觸發(fā)。
IE 5.5: div -> body -> document
IE 6.0: div -> body -> html -> document
Mozilla 1.0: div -> body -> html -> document -> window
(2)捕獲型事件(event capturing):
事件從最不精確的對(duì)象(document 對(duì)象)開(kāi)始觸發(fā),然后到最精確(也可以在窗口級(jí)別捕獲事件,
不過(guò)必須由開(kāi)發(fā)人員特別指定)。
(3)DOM事件流:同時(shí)支持兩種事件模型:捕獲型事件和冒泡型事件,
但是,捕獲型事件先發(fā)生。兩種事件流會(huì)觸及DOM中的所有對(duì)象,
從document對(duì)象開(kāi)始,也在document對(duì)象結(jié)束。
14.閉包是什么,有什么特性,對(duì)頁(yè)面有什么影響
閉包就是能夠讀取其函數(shù)內(nèi)部變量的函數(shù)。
官方解釋是一個(gè)擁有許多變量和綁定了這些變量的環(huán)境的表達(dá)式
閉包的實(shí)質(zhì)是一個(gè)函數(shù),是一個(gè)用于返回局部變量值的函數(shù),
因?yàn)樵谌种校躂avaScript鏈?zhǔn)阶饔糜蚪Y(jié)構(gòu)的影響,父級(jí)變量中無(wú)法訪(fǎng)問(wèn)到子級(jí)的變量值,
為了解決這個(gè)問(wèn)題,才使用閉包這個(gè)概念。由于閉包時(shí),變量的值都保存到內(nèi)存中,
會(huì)導(dǎo)致頁(yè)面加載時(shí)內(nèi)存消耗很大,IE會(huì)導(dǎo)致內(nèi)在泄露,因此盡量少用或用時(shí)要及時(shí)刪除變量。
15.如何阻止事件冒泡和默認(rèn)事件
function stopBubble(e) {
// 如果提供了事件對(duì)象,則這是一個(gè)非IE瀏覽器
if ( e && e.stopPropagation ) {
// 因此它支持W3C的stopPropagation()方法
e.stopPropagation();
} else {
// 否則,我們需要使用IE的方式來(lái)取消事件冒泡
window.event.cancelBubble = true;
}
}
16.添加 刪除 替換 插入到某個(gè)接點(diǎn)的方法
obj.appendChidl()
obj.innersetBefore
obj.replaceChild
obj.removeChild