前端面試題干貨集合

前端工程師

前端工程師
前端工程師

前端工程師屬于IT技術(shù)職業(yè)的一種甲献,是近5年發(fā)展起來(lái)的職業(yè),舊的體系將其定義為Web前端工程師颂翼,主要的技術(shù)包含:HTML晃洒、JavaScript慨灭、CSS。但I(xiàn)T技術(shù)屬于變化比較快的領(lǐng)域球及,最近發(fā)生了很大的變革氧骤,新的體系下,前端工程師技術(shù)又增加了:nodejs吃引、Hybrid App筹陵。前端技術(shù)的興起和網(wǎng)頁(yè)越來(lái)越豐富化,造就了前端的繁榮現(xiàn)象镊尺。雖然說(shuō)入門(mén)相比IT其他行業(yè)簡(jiǎn)單朦佩,繼而造成更多人轉(zhuǎn)行和培訓(xùn)機(jī)構(gòu)大量成批送出,但是這個(gè)職位依舊稀缺中高級(jí)人才庐氮。

面試是一個(gè)重要的環(huán)節(jié)语稠,他是公司評(píng)判你是否適合和測(cè)試你技術(shù)的程度的方式,所以如果你想進(jìn)入到你心儀的公司弄砍,那么面試這個(gè)環(huán)節(jié)就不能掉鏈子仙畦,下面是我見(jiàn)到過(guò)總結(jié)的一些面試題,希望各位前端工程師們能有些許幫助,會(huì)定期更新面試題音婶。

HTML/CSS部分

1.什么是盒子模型慨畸?

在網(wǎng)頁(yè)中,一個(gè)元素占有空間的大小由幾個(gè)部分構(gòu)成衣式,其中包括元素的內(nèi)容(content)寸士,元素的內(nèi)邊距(padding),元素的邊框(border)瞳收,元素的外邊距(margin)四個(gè)部分碉京。這四個(gè)部分占有的空間中厢汹,有的部分可以顯示相應(yīng)的內(nèi)容螟深,而有的部分只用來(lái)分隔相鄰的區(qū)域或區(qū)域。4個(gè)部分一起構(gòu)成了css中元素的盒模型烫葬。

2界弧、行內(nèi)元素有哪些?塊級(jí)元素有哪些搭综? 空(void)元素有那些垢箕?

  • 行內(nèi)元素:a、b兑巾、span条获、img、input蒋歌、strong帅掘、select委煤、label、em修档、button碧绞、textarea
  • 塊級(jí)元素:div、ul吱窝、li讥邻、dl、dt院峡、dd兴使、p、h1-h6照激、blockquote
  • 空元素:即系沒(méi)有內(nèi)容的HTML元素鲫惶,例如:br、meta实抡、hr欠母、link、input吆寨、img

3赏淌、CSS實(shí)現(xiàn)垂直水平居中

很經(jīng)典的問(wèn)題有很多種方法,下面是其中一種解決辦法:

html:

<div class="wrapper">
    <div class="content"></div>
</div>  

css:

.wrapper {
  position: relative;
  width: 500px;
  height: 500px;
  background-color: #ddd;
 }
.content{
    background-color:#6699FF;
    width:200px;
    height:200px;
    position: absolute;        //父元素需要相對(duì)定位
    top: 50%;
    left: 50%;
    margin-top:-100px ;   //二分之一的height啄清,width
    margin-left: -100px;
} 

4.簡(jiǎn)書(shū)一下src和href的區(qū)別

  • href 是指向網(wǎng)絡(luò)資源所在位置六水,建立和當(dāng)前元素(錨點(diǎn))或當(dāng)前文檔(鏈接)之間的鏈接,用于超鏈接辣卒。
  • src是指向外部資源的位置掷贾,指向的內(nèi)容將會(huì)嵌入到文檔中當(dāng)前標(biāo)簽所在位置;在請(qǐng)求src資源時(shí)會(huì)將其指向的資源下載并應(yīng)用到文檔內(nèi)荣茫,例如js腳本想帅,img圖片和frame等元素。當(dāng)瀏覽器解析到該元素時(shí)啡莉,會(huì)暫停其他資源的下載和處理港准,直到將該資源加載、編譯咧欣、執(zhí)行完畢浅缸,圖片和框架等元素也如此,類(lèi)似于將所指向資源嵌入當(dāng)前標(biāo)簽內(nèi)魄咕。這也是為什么將js腳本放在底部而不是頭部衩椒。

5.什么是css hack

一般來(lái)說(shuō)是針對(duì)不同的瀏覽器寫(xiě)不同的CSS,就是 CSS Hack。
IE瀏覽器Hack一般又分為三種,條件Hack毛萌、屬性級(jí)Hack梢什、選擇符Hack(詳細(xì)參考CSS文檔:css文檔)。例如:

 // 1朝聋、條件Hack
<!--[if IE]>
  <style>
        .test{color:red;}
  </style>
<![endif]-->
// 2嗡午、屬性Hack
.test{
color:#090\9; /* For IE8+ */
*color:#f00;  /* For IE7 and earlier */
_color:#ff0;  /* For IE6 and earlier */
}
// 3、選擇符Hack
* html .test{color:#090;}       /* For IE6 and earlier */
* + html .test{color:#ff0;}     /* For IE7 */

6.簡(jiǎn)述同步和異步的區(qū)別

同步是阻塞模式冀痕,異步是非阻塞模式荔睹。
同步就是指一個(gè)進(jìn)程在執(zhí)行某個(gè)請(qǐng)求的時(shí)候,若該請(qǐng)求需要一段時(shí)間才能返回信息言蛇,那么這個(gè)進(jìn)程將會(huì)一直等待下去僻他,直到收到返回信息才繼續(xù)執(zhí)行下去;
異步是指進(jìn)程不需要一直等下去腊尚,而是繼續(xù)執(zhí)行下面的操作吨拗,不管其他進(jìn)程的狀態(tài)。當(dāng)有消息返回時(shí)系統(tǒng)會(huì)通知進(jìn)程進(jìn)行處理婿斥,這樣可以提高執(zhí)行的效率劝篷。

7、px和em的區(qū)別

px和em都是長(zhǎng)度單位民宿,區(qū)別是娇妓,px的值是固定的,指定是多少就是多少活鹰,計(jì)算比較容易哈恰。em得值不是固定的,并且em會(huì)繼承父級(jí)元素的字體大小志群。
瀏覽器的默認(rèn)字體高都是16px着绷。所以未經(jīng)調(diào)整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

8.什么叫優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)锌云?

漸進(jìn)增強(qiáng) progressive enhancement:
針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁(yè)面荠医,保證最基本的功能,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果宾抓、交互等改進(jìn)和追加功能達(dá)到更好的用戶(hù)體驗(yàn)子漩。
優(yōu)雅降級(jí) graceful degradation:
一開(kāi)始就構(gòu)建完整的功能,然后再針對(duì)低版本瀏覽器進(jìn)行兼容石洗。
區(qū)別:

  • a. 優(yōu)雅降級(jí)是從復(fù)雜的現(xiàn)狀開(kāi)始,并試圖減少用戶(hù)體驗(yàn)的供給
  • b. 漸進(jìn)增強(qiáng)則是從一個(gè)非辰粝裕基礎(chǔ)的讲衫,能夠起作用的版本開(kāi)始,并不斷擴(kuò)充,以適應(yīng)未來(lái)環(huán)境的需要
  • c. 降級(jí)(功能衰減)意味著往回看涉兽;而漸進(jìn)增強(qiáng)則意味著朝前看招驴,同時(shí)保證其根基處于安全地帶

瀏覽器的內(nèi)核分別是什么?

  • IE: trident內(nèi)核
  • Firefox:gecko內(nèi)核
  • Safari:webkit內(nèi)核
  • Opera:以前是presto內(nèi)核,Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核
  • Chrome:Blink(基于webkit枷畏,Google與Opera Software共同開(kāi)發(fā))

JavaScript部分

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() //通過(guò)標(biāo)簽名稱(chēng)
getElementsByName() //通過(guò)元素的Name屬性的值
getElementById() //通過(guò)元素Id仇祭,唯一性

2.如何消除一個(gè)數(shù)組里面重復(fù)的元素披蕉?

// 方法一:
var arr1 =[1,2,2,2,3,3,3,4,5,6],
    arr2 = [];
for(var i = 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

3.在Javascript中什么是偽數(shù)組?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組乌奇?

偽數(shù)組(類(lèi)數(shù)組):無(wú)法直接調(diào)用數(shù)組方法或期望length屬性有什么特殊的行為没讲,但仍可以對(duì)真正數(shù)組遍歷方法來(lái)遍歷它們。典型的是函數(shù)的argument參數(shù)礁苗,還有像調(diào)用getElementsByTagName,document.childNodes之類(lèi)的,它們都返回NodeList對(duì)象都屬于偽數(shù)組食零。可以使用Array.prototype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對(duì)象寂屏。

function log(){
 var args = Array.prototype.slice.call(arguments);  
//為了使用unshift數(shù)組方法贰谣,將argument轉(zhuǎn)化為真正的數(shù)組
 args.unshift('(app)');
  console.log.apply(console, args);
};

4.addEventListener最后一個(gè)參數(shù)是做什么用的

規(guī)定事件是冒泡還是捕獲。false是冒泡迁霎,true是捕獲

5.什么是冒泡吱抚,什么是捕獲

當(dāng)一個(gè)元素觸發(fā)了一個(gè)事件之后就會(huì)像上層傳遞直至body,document考廉。捕獲是從最不具體的傳至最具體的

6.所有的事件都可以冒泡么

不是秘豹,blur focus change不可冒泡

7.怎么取消事件冒泡

eve.preventDefault(阻止事件默認(rèn)行為)

HTTP

1.一次完整的HTTP事務(wù)是怎樣的一個(gè)過(guò)程?

基本流程:

  • a. 域名解析
  • b. 發(fā)起TCP的3次握手
  • c. 建立TCP連接后發(fā)起http請(qǐng)求
  • d. 服務(wù)器端響應(yīng)http請(qǐng)求昌粤,瀏覽器得到html代碼
  • e. 瀏覽器解析html代碼既绕,并請(qǐng)求html代碼中的資源
  • f. 瀏覽器對(duì)頁(yè)面進(jìn)行渲染呈現(xiàn)給用戶(hù)

更新日志

2017/06/13 第一次更新文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市涮坐,隨后出現(xiàn)的幾起案子凄贩,更是在濱河造成了極大的恐慌,老刑警劉巖袱讹,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疲扎,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)椒丧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)壹甥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人壶熏,你說(shuō)我怎么就攤上這事句柠。” “怎么了棒假?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵溯职,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我淆衷,道長(zhǎng)缸榄,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任祝拯,我火速辦了婚禮甚带,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘佳头。我一直安慰自己鹰贵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布康嘉。 她就那樣靜靜地躺著碉输,像睡著了一般。 火紅的嫁衣襯著肌膚如雪亭珍。 梳的紋絲不亂的頭發(fā)上敷钾,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音肄梨,去河邊找鬼阻荒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛众羡,可吹牛的內(nèi)容都是我干的侨赡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼粱侣,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羊壹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起齐婴,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤油猫,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后尔店,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體眨攘,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡主慰,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年嚣州,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鲫售。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡该肴,死狀恐怖情竹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情匀哄,我是刑警寧澤秦效,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站涎嚼,受9級(jí)特大地震影響阱州,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜法梯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一苔货、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧立哑,春花似錦夜惭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至捂掰,卻和暖如春敢会,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背这嚣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工鸥昏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人疤苹。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓互广,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親卧土。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惫皱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)尤莺、<...
    clark124閱讀 3,460評(píng)論 1 19
  • 請(qǐng)參看我github中的wiki旅敷,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,114評(píng)論 2 19
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案颤霎? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,734評(píng)論 1 92
  • 2月12號(hào)當(dāng)天媳谁,當(dāng)?shù)氐目图矣讶藥覀儏⒂^她祖上上百年的祖屋涂滴,俗稱(chēng)“五鳳樓”。據(jù)說(shuō)能建這種樓的必須得到當(dāng)朝皇帝的御賜...
    Nancy_Zhang閱讀 375評(píng)論 0 0
  • 昨夜回家 公車(chē)上晴音,一路仰頭看著窗外 累 一切都累 工作中好累——各種處理不完的事務(wù)——存在著 工作間隙累——對(duì)著同...
    大汁閱讀 101評(píng)論 0 0