前端一些面试问题3
DOM結(jié)構(gòu)——兩個節(jié)點之間可能存在哪些關(guān)系以及如何在節(jié)點之間任意移動。
DOM操作——怎樣添加、移除、移動、復(fù)制、創(chuàng)建和查找節(jié)點。
1.創(chuàng)建新節(jié)點
? createDocumentFragment()
? createElement()
? createTextNode()
2.添加、移除、替換
? appendChild()
? removeChild()
? replaceChild()
? insertBefore()
3.查找
? getElementsByTagName()
? getElementsByName()
? getElementById()
---------------------------------------------------------------------
事件——怎樣使用事件以及IE和DOM事件模型之間存在哪些主要差別。
1.冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document對象)的順序觸發(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):事件從最不精確的對象(document 對象)開始觸發(fā),然后到最精確(也可以在窗口級別捕獲事件,不過必須由開發(fā)人員特別指定)。
3.DOM事件流:同時支持兩種事件模型:捕獲型事件和冒泡型事件,但是,捕獲型事件先發(fā)生。兩種事件流會觸及DOM中的所有對象,從document對象開始,也在document對象結(jié)束。
? DOM事件模型最獨特的性質(zhì)是,文本節(jié)點也觸發(fā)事件(在IE中不會)。
------------------------------------------------------------------------
事件處理函數(shù)/監(jiān)聽函數(shù)
IE:
在IE中,每個元素和window對象都有兩個方法:attachEvent()和detachEvent()。事件處理函數(shù)總是按照添加它們的順序進行調(diào)用。
DOM:
DOM方法addEventListener()和removeEventListener()用來分配和移除事件處理函數(shù)。與IE不同,這些方法需要三個參數(shù):事件名稱,要分配的函數(shù)和處理函數(shù)是用于冒泡階段還是捕獲階段。如果事件處理函數(shù)是用于捕獲階段,第三個參數(shù)為true;用于冒泡階段,則為false。
如果使用addEventListener()將事件處理函數(shù)加入到捕獲階段,則必須在removeEventListener()中指明是捕獲階段,才能正確的將這個事件處理函數(shù)刪除。
-------------------------------------------------------------------------------
事件對象
在IE中,事件對象是window對象的一個屬性event,event對象只能在事件發(fā)生時訪問。所有的事件處理函數(shù)執(zhí)行完畢后,事件對象就被銷毀。
DOM標準,event對象必須作為唯一的參數(shù)傳遞給事件處理函數(shù)。
區(qū)別:
1.獲取目標:位于事件中心的對象稱為目標
? 在IE中,目標包含在event對象的srcElement屬性中:var oTarget = oEvent.srcElement;
? 在DOM兼容的瀏覽器中,目標包含在target屬性中:var oTarget = oEvent.target;
2.獲取字符代碼
3.阻止某個事件的默認行為
? 在IE中要阻止某個事件的默認行為,必須將returnValue屬性設(shè)置為false:oEvent.returnValue = false;
? 在Mozilla中,只要調(diào)用preventDefault()方法:oEvent.preventDefault();
?4.停止事件復(fù)制(冒泡)
? IE:oEvent.cancelBubble = true;
? mozilla: oEvent.stopPropagation();
------------------------------------------------------------------------------------------
XMLHttpRequest——這是什么、怎樣完整地執(zhí)行一次GET請求、怎樣檢測錯誤。
XMLHttpRequest 對象提供了在網(wǎng)頁加載后與服務(wù)器進行通信的方法。
?
<script type="text/javascript">var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for all new browsers
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE5 and IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}
function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = OK
// ...our code here...
}
else
{
alert("Problem retrieving XML data");
}
}
}
</script>
?
?
-------------------------------------------------------------------------------------------?
嚴格模式與混雜模式——如何觸發(fā)這兩種模式,區(qū)分它們有何意義。
在標準模式中,瀏覽器根據(jù)規(guī)范呈現(xiàn)頁面;
在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示。
瀏覽器根據(jù)DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現(xiàn)方法。如果XHTML文檔包含形式完整的DOCTYPE,那么它一般以標準模式呈現(xiàn)。對于HTML 4.01文檔,包含嚴格DTD的DOCTYPE常常導(dǎo)致頁面以標準模式呈現(xiàn)。包含過渡DTD和URI的DOCTYPE也導(dǎo)致頁面以標準模式呈現(xiàn),但是有過渡DTD而沒有URI會導(dǎo)致頁面以混雜模式呈現(xiàn)。DOCTYPE不存在或形式不正確會導(dǎo)致HTML和XHTML文檔以混雜模式呈現(xiàn)。
-------------------------------------------------------------------------------------------
盒模型——外邊距、內(nèi)邊距和邊框之間的關(guān)系,IE 8以下版本的瀏覽器中的盒模型有什么不同。
?
塊級元素與行內(nèi)元素——怎么用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應(yīng)該如何定義它們的樣式。
?
浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。
?
HTML與XHTML——二者有什么區(qū)別,你覺得應(yīng)該使用哪一個并說出理由。
?
JSON——它是什么、為什么應(yīng)該使用它、到底該怎么使用它,說出實現(xiàn)細節(jié)來。
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。
JSON建構(gòu)于兩種結(jié)構(gòu):
“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結(jié)構(gòu)(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關(guān)聯(lián)數(shù)組 (associative array)。
值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。
轉(zhuǎn)載于:https://www.cnblogs.com/sweetie/archive/2010/12/08/1900578.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: chrome web store的信息
- 下一篇: XHTML标签的嵌套规则