1. 程式人生 > >騰訊2018暑期前端實習生面試問題(面向2019畢業生)

騰訊2018暑期前端實習生面試問題(面向2019畢業生)

    收到騰訊的面試簡訊之後,心裡很激動,隨即就著手開始準備面試(對於筆試我就不贅述,要準備筆試的同學可以到牛客或者賽碼進行練習)。從網上搜了很多面試的題目,複習的範圍很廣,但是也很雜。感覺這樣的效率的確是有一些低。

    接下來我會說一下我的面試題目,以及對面試題目進行一個總結。由於面試時間是早上9點,所以我6點就起了床收拾一番之後就去面試地點,去的路上和麵試完整個人的腦袋都是蒙的。有些面試的題目已經記不得,所以我就盡力回憶,有所遺漏請見諒。

    By the way,我遇到的這個面試官出牌有點不按套路,與以往首先讓你介紹自己的流程不太一樣。大家在面試的時候也要注意一下,學會隨機應變。

① 介紹自己在前端學習的經歷

    我把從大一到大三學習的與有關前端的課程,以及課程內容進行了描述;同時還說了一下自己在課餘時間學習前端的一些方法,還有正在學習的ReactJs。

② 有關ReactJs

這個問題算是自己給自己挖了坑(後來瞭解到他所在的部門2015年用的框架是Angular,到了2016年以後就換成了ReactJs)。

    問:平時怎麼學習React?

    答:因為是剛開始學習,所以就一步一步按照官方文件來學習。

    問(並用自己的電腦打開了官方文件給我看):是這個英文版的嗎?

    答:是的,沒課的時候就會自己看一下,學的比較慢。現在才學習到React的State機制。

    問:好,那說一下自己學習ReactJs的一些收穫。

    這個具體怎麼答的我忘了,總之對這個答的不太滿意。

③ 在紙上寫下來一個前端開發工程師必備的一些技能(專業技能,並非通用技能)。

    我寫的有:HTML/JS/當下流行的前端框架/計算機網路/資料結構/作業系統/對後端語言也要有一些瞭解。

    然後接下來的問題都是圍繞著我寫的這幾點問的(又是自己挖坑自己跳)。

④ 有關HTML/CSS的問題。

    問:說一下display和position的取值。

    答:display的取值有:table/inline/block/inline-block(當時就說了這些,還有經常用到的none,table-cell這些一緊張忘記說了);position的取值有:fixed/relative/absolute(static忘記說了)。

    問:說一下absolute。

    答:absolute是對元素的一個絕對定位,是相對於瀏覽器可視區域的一個定位,比如:position:absolute;top:o;這個CSS程式碼就會讓元素顯示在瀏覽器的最上方。position屬性設定為absolute的元素會脫離文件流(又給自己挖坑了)。

    問:什麼是文件流?

    答:我對文件流的理解就是:在文件流中的元素就像在一塊畫布上畫的畫,而脫離文件流就像在畫布的上面放了個東西,脫離文件流只會就會遮擋處於文件流中的元素。再舉個例子就像是:雲彩和大地的一種關係。

⑤ 有關Js的問題。

    問:說一下你對事件的理解。

    答:我認為事件就是對使用者操作的一種響應。

    (關於事件大家可以看一下這篇部落格:有關JS事件理解和總結

    問:再說一下事件代理吧。

    答:我對時間代理的理解就是事件A不由a做,而讓b去做。

    問:為什麼這樣做呢?

    這裡我不太瞭解,就如實招了,順口說了一下有可能是為了降低耦合度吧。有關時間代理大家可以看一下下面兩篇部落格:

⑥ 有關HTTP的問題。

    有關HTTP我嘰裡呱啦說了一些,大概內容有:HTTP的頭部,HTTP的狀態碼,HTTP返回碼,ajax中xmlHttpRequest()的應用,還有在瀏覽器輸入域名之後的操作(比如:重定向->檢查DNS快取->DNS解析->傳送請求等)。

    隨後面試官在電腦上打開了一個抓包工具,讓我講一下每一個欄位代表什麼含義,這裡大家可以參考這篇部落格:HTTP頭部欄位含義(現在每個瀏覽器應該都會有開發者工具的外掛,大家可以下載下來好好研究一下,熟練使用瀏覽器的外掛會對開發效率有很大提升),下圖是chrome的開發者工具裡的抓包截圖,大家可以參考一下:


      說完每個欄位的含義又讓我說了一下Cookie包含那些,以及Cookie,LocalStorage和Storage的區別(這一部分我沒答上來)。  

⑦ 總結

    這個面試持續了50分鐘左右,總的來說問的問題並沒有特別的偏,都是規規矩矩的面試題目,並且面試官也很和善。從上面的題目和我做過的面試題來看,最重要的就是打牢基礎!!!下面我總結了一下面試前需要認真準備的內容(僅就個人經歷而言):

    1. 對於計算機基礎課程尤其是計算機網路一定要認真學習,比如:DNS,TCP/IP,UDP以及HTTP,七層架構,五層架構之類的一定要爛熟於心;作業系統中程序的通訊方式,程序阻塞的必要條件;資料結構裡常見的排序和資料結構(連結串列,雜湊表,棧,隊等)的實現;

    2. 還有前端一些常見的佈局,比如:垂直/水平居中佈局,左中右佈局等;如何清除浮動;

    3. JS中對ajax的實現;設定/獲取Cookie;事件代理(也稱事件委託);雖然說JS是單執行緒的一門語言,但是也有非同步操作,如:setTimeout()等;JS閉包,作用域,作用鏈域等。

    4. 儘可能去學習當下比較流行的前端框架,在和麵試官交流的過程中他也建議我去好好學習一下React,現在各個大公司對React的人才需求很大。

⑧ 結束語

    今天的面試內容和自己的一些心得體會也就這些,作為一名大三的學生能通過筆試進入面試著實很開心,不管能不能拿到offer都希望自己的一些經歷能幫助到大家。如果有什麼錯誤歡迎指出,我會加以修改!