前端面試題

1、DOM結構 —— 兩個節點之間可能存在哪些關系以及如何在節點之間任意移動。

2、DOM操作 ——如何添加、移除、移動、復制、創建和查找節點等。

3、事件 —— 如何使用事件,以及IE和標準DOM事件模型之間存在的差別。

4、XMLHttpRequest —— 這是什么、怎樣完整地執行一次GET請求、怎樣檢測錯誤。

5、嚴格模式與混雜模式 —— 如何觸發這兩種模式,區分它們有何意義。

6、盒模型 —— 外邊距、內邊距和邊框之間的關系,及IE8以下版本的瀏覽器中的盒模型

7、塊級元素與行內元素 —— 怎么用CSS控制它們、以及如何合理的使用它們

8、浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。

9、HTML與XHTML——二者有什么區別,你覺得應該使用哪一個并說出理由。

10、JSON —— 作用、用途、設計結構。

好的,我也來刷一刷面試題哈哈哈

1.DOM結構 —— 兩個節點之間可能存在哪些關系以及如何在節點之間任意移動。
DOM中兩個節點存在的關系有3種:①包含與被包含 ②父節點與子節點③同輩(兄弟節點)
節點之間移動:
document.documentElement 返回文檔的根節點<html>
document.body <body>
document.activeElement 返回當前文檔中被擊活的標簽節點(ie)
event.fromElement 返回鼠標移出的源節點(ie)
event.toElement 返回鼠標移入的源節點(ie)
event.srcElement 返回激活事件的源節點(ie)
event.target 返回激活事件的源節點(firefox)
當前對象為node
返回父節點:node.parentNode, node.parendElement,區別在于只能node.parendElement獲取元素
返回所有子節點:node.childNodes(包含文本節點及標簽節點),node.children (只包含元素子節點)
返回第一個子節點:node.firstChild
返回最后一個子節點: node.lastChild
返回同屬上一個子節點:node.nextSibling
返回同屬下一個子節點:node.previousSibling

2.DOM操作 ——如何添加、移除、移動、復制、創建和查找節點等。
(1)創建新節點
createDocumentFragment() //創建一個DOM片段
createElement() //創建一個具體的元素
createTextNode() //創建一個文本節點
(2)添加、移除、替換、插入
appendChild()
removeChild()
replaceChild()
insertBefore()
(3)查找
getElementsByTagName() //通過標簽名稱
getElementsByName() //通過元素的Name屬性的值
getElementById() //通過元素Id,唯一性

3、事件 —— 如何使用事件,以及IE和標準DOM事件模型之間存在的差別。
(1)冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document對象)的順序觸發。
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 對象)開始觸發,然后到最精確(也可以在窗口級別捕獲事件,不過必須由開發人員特別指定)。
(3)DOM事件流:同時支持兩種事件模型:捕獲型事件和冒泡型事件,但是,捕獲型事件先發生。兩種事件流會觸及DOM中的所有對象,從document對象開始,也在document對象結束。
DOM事件模型最獨特的性質是,文本節點也觸發事件(在IE中不會)。

4.XMLHttpRequest —— 這是什么、怎樣完整地執行一次GET請求、怎樣檢測錯誤。
XMLHttpRequest 對象提供了在網頁加載后與服務器進行通信的方法。

<script type="text/javascript">
varxmlhttp;
functionloadXMLDoc(url){
xmlhttp=null;
if(window.XMLHttpRequest){ //code for all new browsers
xmlhttp=newXMLHttpRequest();
}elseif(window.ActiveXObject){ //code for IE5 and IE6
xmlhttp=newActiveXObject("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.");
}
}
functionstate_Change(){
if(xmlhttp.readyState==4){ //4 = "loaded"
if(xmlhttp.status==200){ //200 = OK
//...our code here...
}else{
alert("Problem retrieving XML data");
}
}
}
</script>

5、嚴格模式與混雜模式——如何觸發這兩種模式,區分它們有何意義。
在標準模式中,瀏覽器根據規范呈現頁面;
在混雜模式中,頁面以一種比較寬松的向后兼容的方式顯示。
瀏覽器根據DOCTYPE是否存在以及使用的哪種DTD來選擇要使用的呈現方法。如果XHTML文檔包含形式完整的DOCTYPE,那么它一般以標準模式呈現。對于HTML 4.01文檔,包含嚴格DTD的DOCTYPE常常導致頁面以標準模式呈現。包含過渡DTD和URI的DOCTYPE也導致頁面以標準模式呈現,但是有過渡DTD而沒有URI會導致頁面以混雜模式呈現。DOCTYPE不存在或形式不正確會導致HTML和XHTML文檔以混雜模式呈現。

6、盒模型——外邊距、內邊距和邊框之間的關系,IE 8以下版本的瀏覽器中的盒模型有什么不同。
一個元素盒模型的層次從內到外分別為:內邊距、邊框和外邊距
IE8以下瀏覽器的盒模型中定義的元素的寬高不包括內邊距和邊框

7、塊級元素與行內元素——怎么用CSS控制它們、它們怎樣影響周圍的元素以及你覺得應該如何定義它們的樣式。
塊級元素,用CSS中的display:inline;屬性則變為行內元素
行內元素,用CSS中的display:block;屬性則變為塊級元素
影響:周圍元素顯示在同一行或換行顯示,根據具體情況調整樣式

8、浮動元素——怎么使用它們、它們有什么問題以及怎么解決這些問題。
需要浮動的元素可使用CSS中float屬性來定義元素的浮動位置,left:往左浮動,right:往右浮動
浮動元素引起的問題:
(1)父元素的高度無法被撐開,影響與父元素同級的元素
(2)與浮動元素同級的非浮動元素會跟隨其后
(3)若非第一個元素浮動,則該元素之前的元素也需要浮動,否則會影響頁面顯示的結構
解決方法:
使用CSS中的clear:both;屬性來清除元素的浮動可解決2、3問題,對于問題1,添加如下樣式,給父元素添加clearfix樣式:
.clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;}
.clearfix{display: inline-block;} /* for IE/Mac */

9、HTML與XHTML——二者有什么區別,你覺得應該使用哪一個并說出理由。
主要區別:
XHTML 元素必須被正確地嵌套
XHTML 元素必須被關閉,空標簽也必須被關閉,如
必須寫成 <br />
XHTML 標簽名必須用小寫字母
XHTML 文檔必須擁有根元素
XHTML 文檔要求給所有屬性賦一個值
XHTML 要求所有的屬性必須用引號""括起來
XHTML 文檔需要把所有 < 、>、& 等特殊符號用編碼表示
XHTML 文檔不要在注釋內容中使“--”
XHTML 圖片必須有說明文字
XHTML 文檔中用id屬性代替name屬性

10、JSON——它是什么、為什么應該使用它、到底該怎么使用它,說出實現細節來。
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易于人閱讀和編寫。同時也易于機器解析和生成。
JSON建構于兩種結構:
“名稱/值”對的集合(A collection of name/value
pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表
(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,622評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,716評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,746評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,991評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,706評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,036評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,029評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,203評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,725評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,451評論 3 361
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,677評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,161評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,857評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,266評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,606評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,407評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,643評論 2 380

推薦閱讀更多精彩內容

  • 1.一些開放性題目 1.自我介紹:除了基本個人信息以外,面試官更想聽的是你與眾不同的地方和你的優勢。 2.項目介紹...
    55lover閱讀 645評論 0 6
  • HTML HTML5標簽 媒體查詢head部分寫法 Doctype作用? 嚴格模式與混雜模式如何區分?它們有何意義...
    Mayo_閱讀 664評論 0 8
  • 【轉載】CSDN - 張林blog http://blog.csdn.net/XIAOZHUXMEN/articl...
    竿牘閱讀 3,507評論 1 14
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    前端進階之旅閱讀 114,561評論 24 450
  • 一、理論基礎知識部分 1.1、講講輸入完網址按下回車,到看到網頁這個過程中發生了什么 a. 域名解析 b. 發起T...
    我家媳婦蠢蠢噠閱讀 3,145評論 2 106