A. 前端怎麼面試才能拿到高薪Offer
1. 要有比較好的計算機基礎
這里的計算機基礎指的是數據結構與演算法,操作系統,編譯原理,計算機網路等等。雖然相對於其他方向而言,前端在工作中用到計算機基礎的地方可能少一點,但是無論大小廠,招實習生其實都是為正式招聘做儲備,所以會比較希望招將來有更大發展空間的人,就像里 Web 前後端分離的意義大嗎? - 知乎用戶的回答 和 怎樣成為全棧工程師(Full Stack Developer)? - 知乎用戶的回答 描述的那種。
如果你具備比較好的計算機基礎素養,那麼以後在拓展到其他領域(WebGL —— 計算機圖形學,Node.js 底層 —— 操作系統,JS 引擎和各種預編譯工具—— 編譯原理, etc.)的時候會更快上手。另外有一些公司對前端的概念不局限於 Web 前端,也包括移動端偏前端的部分,這里也需要你有比較好的計算機基礎才能做好。前端領域有很多人已經不滿足於造輪子,直接跑去造語言了,如果你編程基礎夠好,接觸過各種形形色色的編程語言和範式,再上手這些東西也會方便些(比如Ruby/Python->CoffeeScript,Haskell->LiveScript)。
雖然也有很多地方為了招到足夠多能來幹活的前端會降低對計算機基礎的要求,但是打好這方面的基礎是沒有壞處的,如果面試筆試被問到且答得上來,也是能夠加分的。一些大廠經常會出現「不是前端的面試官來面前端」的情況,我個人是覺得如果這類面試官問的都是計算機基礎問題的話,其實真的無可厚非,畢竟人家在面「一個前端程序員」之前,是在面「一個程序員」啊……
2. 要懂得現代前端的一些新技術
比如:
前端自動化工具(Gulp/Grunt等)
模塊化(CommonJS,AMD/CMD模塊載入器,各種Bundler,ES2015 Moles等)
前端 MV* 框架(Backbone,Angular等)
編譯到 CSS 和 JS 的一些語言(Less/Sass/CoffeeScript等)
前端自動化測試工具(Karma,Mocha,Web Driver等)
其他
有一些同學覺得這些東西懂得越多越好,我個人是覺得這些工具不一定要都了解(畢竟它們很多也未必能火多久),但對這些東西要有大致的概念,並且每個領域的用過一兩種(最好是在項目里),清楚它們的優缺點和必要程度。這是區分在前端上投入過一定精力的人和跨行來兼職前端的人的標志。
去大廠校招應聘前端的會有很多隻是做過一些 Web 項目,但不一定對前端的技術很了解,只是看前端門檻比較低就去投簡歷的人。如果你對這些新技術比較了解的話,起碼能夠證明你是比較專注前端而且花過一定時間在上面的。
同時,前端現在確實是一個每天都有很多輪子冒出來的領域,也需要你有足夠強的自學能力和(英文)文檔閱讀能力去跟上社區的這些新動態。接觸過比較多的輪子,才會有自己的判斷,不會老是人雲亦雲火一個學一個。這些工具里,確實也有很多在合適的場景下可以提高前端的生產力或者代碼質量,對這些東西有一定關注,也表明你對自己的生產力和代碼質量是有一定關注的,這其實是一個更廣義的靠譜程序員的特性。
3. 懂得什麼是 Web 標准和瀏覽器開發維護的流程,並且會跟進新發布的標准和主流瀏覽器新實現的特性
當然面試的時候一般不會直接問你這方面的問題,但是如果你懂這裡面的水大概是怎麼一回事的話,在很多問題上(特別是兼容性問題上)都能回答得比較深刻一些。最好清楚:
HTML、CSS、DOM,ECMAScript 和一些泛 HTML5 的標準是怎麼制定的
W3C 和 WHATWG 的區別
各種標準的不同版本和提交狀態是怎麼回事
知道標准和實現的差距(有些人喜歡把 W3C 標准奉為圭臬,但現實中瀏覽器們並不是這樣的)
知道 ECMAScript 和 JavaScript 的區別
知道瀏覽器的一些常見做法(比如給 CSS 特性加前綴)的緣由
標准和瀏覽器這灘水還是很渾的,涉及到很多利益糾葛和大廠的博弈,如果你大概清楚他們的一些事情,不光自己做前端兼容的時候會容易一些(不會只抱怨「為啥XXX就是不能OOO」而是懂得他們的無奈並且認真尋找解決方案),在新特性出來的時候也更容易消化(不是「啊又出了個新東西要學好煩啊」而是「在郵件列表上爭(si)論(bi)了那麼久他們終於把這個搞出來了」),你自己對前端比較基礎的那部分的知識體系更會有條理得多。個人覺得這也是區分比較有經驗的前端和臨時跨行的前端的關鍵之一,這些東西是需要你經過一段時間的耳濡目染才能理清楚,而且會在一定程度上影響你的工作的。
4. 多看書,多關注技術資訊
技術資訊的來源包括RSS、郵件訂閱、比較重要的郵件列表、或者follow Twitter和微博上一些比較有影響力的開發者。個人經驗是,一般在二面或者三面的時候,面試官都會問類似「你從哪裡接觸前端的新技術/你看過哪些書」的問題,因為前端現在技術更新很快,比較專注於前端這方面的人一般都會有自己接觸新技術的渠道,他們自然也會比較關心候選人是不是有在跟進社區的一些動向。其實這也能夠排除那些不太靠譜的臨門跨行的人,因為他們平時一般不會特意去關注前端技術的新動態的。
5. 不僅懂得一些東西怎麼寫,更要懂得一些東西不要怎麼寫
Web 標准大多不是嚴格向後兼容的,很多幾年前常用的寫法,現在已經被社區的大多數人強烈建議避開了,有很多特性也隨著時間的流逝被打上了 deprecated 的標簽,如果你不幸拿著一本比較老的書入門,又不在網上驗證上面說的每一句話,那麼很有可能你就這樣被誤導很久,比如 HTML可能會逐步被XML所取代嗎?(來自《css權威指南》) - 賀師俊的回答 這樣的情況……與之類似的還有:
JavaScript 里那數量令人嘆為觀止的坑
一些在經驗比較豐富的前端看來屬於常識的東西(比如:為什麼 CSS 大多放在 head,JavaScript 多放在 body 底端?)
劃分各種模塊、文件,添加模板的正確方式(比如錯誤方式是一堆腳本/樣式寫在一個超大文件里,或者在有替代方式的情況下在 JavaScript 里拼字元串)
解決一些老問題的新的best/better practice(比如不要到了 2015 年還深陷在回調地獄,去看看 promise 和 generator)
……
這些知識都需要你有一定的前端方面的經驗,看過比較多相關的博客和書,才能慢慢積累起來,所以也能區分靠譜的前端和不靠譜的前端。
6. 不依賴某一個特定的框架或者庫
比如很常見的「離開了jQuery就不會寫前端」星人……也不是說要做原生 JavaScript/CSS 和 DOM 的原教旨主義者,但高度依賴某個框架或者某個庫的話,通常意味著換了一個框架/庫你的學習成本會比不依賴特定輪子的人高,因為這通常是處於還不知道前端領域「什麼是什麼」的階段的表現。
事實上前端領域的這些輪子有一些都是其他領域早就有,或者根本不需要的東西,其中很多的實現原理也不是那麼復雜,只不過是臟活累活。個人覺得對這些東西應該報以「不能知其然而不知其所以然」的態度,起碼大概清楚它們的實現是怎樣的套路,知道它們的優缺點,多接觸幾種,這樣在換一個替代品的時候很快就能上手。
因為前端的特殊性,在開發比較大的項目的時候使用庫和框架是必須的(比如遇到各種滑鼠事件的前端兼容問題時,總不能全都就地寫 if-else 吧,總得封裝一下。遇到非常 data-driven 的項目,還用手動操作 DOM 的寫法很難維護吧,用個 MV* 框架真的不純是偷懶了),但是這些東西都是會迅速改朝換代的,死守著某個特定的庫或者框架,確實不太靠譜。很多公司喜歡問候選人「原生 API 寫個 Ajax 請求怎麼寫」這類問題,感覺很大程度上也是在排除這類人……
7. 懂一點點設計
這里說的不是切圖啊PS啊AI啊什麼的,而是大概懂基礎的視覺傳達/色彩構成/平面構成的知識。畢竟前端是和設計師聯系最密切的程序員,雖然前端要做的事不僅僅包括 UI/UX,但是 UI/UX 卻都主要依賴前端來實現。很多時候,設計師(特別是不會前端技術的設計師)給出的設計可能很難(在照顧兼容性的前提下)實現,這個時候不應該跟他硬拼讓他改設計,或者自己默默糾結怎麼用很 hack 很難維護的方法去實現,而是理解設計的意圖,並且跟設計師溝通,盡可能在工程上容易實現容易維護的前提下實現設計的意圖,哪怕要修改一些具體的表現形態。
最恐怖的就是丟一張圖過來,讓你做到 pixel perfect,你也不問三七二十一直接開工,代碼寫得別扭也不去溝通,遇到不兼容就打個哈哈矇混過關了……設計的目標是讓大眾都能更容易地使用,這樣做是與設計師存在的意義背道而馳的,我也遇到過一些設計師會主動來問前端怎樣的設計在瀏覽器里容易實現,怎樣的設計比較別扭,這樣他才能結合多方面的信息去做設計上的決定。如果你對設計不關心,不與他交流的話,實際上相當於剝奪了一些關心工程實現的設計師的知情權(一般正常的設計師看到自己的設計實現出來效果不好,也會小郁悶的……)。個人覺得與設計師溝通的技巧,也是一個靠譜的前端應該具備的素養。
8. 懂一點點後端
(這個是我看了一下別人的答案補加的)。其實這個和第一點的目的類似,最重要的是別要做一個非得等隊友來才能開工的人。大廠(主要是阿里系)有不少在用 Node 做前後端分離一類的事,另外做前端的經常要在後端還沒寫完的時候自己去 mock 一下數據介面,如果你懂怎麼搭建簡單的伺服器和 serve 數據給前端,那麼就可以提高開發的效率。即使你只想專注前端,但前端有很多東西(比如 JS 跨域,WebSocket,SSE,WebGL 的素材獲取)都需要你懂得架設簡單的後端才能去實踐,這時候不懂後端通常就意味著你要放棄學習這些知識,或者只能紙上談兵。一個正常的前端肯定是要對計算機網路和 HTTP 等協議有一定了解的,有了這些知識去學簡單的後端其實是很水到渠成的事情。
9. 在前端投入足夠的時間
意識到以上幾點還需要投入足夠多的時間才能看到成果,不然很容易出現「道理我都懂,可是OOO」的情況,那最後也還是靠譜不了的……如果不是真的對前端感興趣並且投入足夠多的時間,與其為了「好找工作」而投前端,不如轉一個更合適的方向。阿里前端的困局與突圍 · Issue #141 · lifesinger/lifesinger.github.com · GitHub 和 圖靈社區 : 閱讀 : 企業軟體領域前端開發的困境 都能說明這個問題。
另外有些面試官喜歡問你一些很細節的 API (雖然我個人覺得這類問題很囧),這些東西很多時候都是靠的「無他,但手熟爾」,雖然有一些確實有點刁難人的味道,但有一些真的是如果你經常寫前端,重復多幾次就會記住的,如果記不住,只能說明你前端寫的不夠多。還有一些沒足夠實戰經驗的人很少遇到過的問題(比如 JS 跨域),也是需要在前端投入足夠多的時間,才會接觸到(無論是紙上談兵,還是項目里遇到)。
其實綜上所述,不靠譜的前端大概表現就是:計算機基礎不好(更糟糕的是編程基礎都不行,不過編程基礎和計算機基礎好不好跟績點高不高專業對不對口這些其實真的不一定有什麼關系……),對前端的認識還停留在十年前,對社區出現的新工具完全不認識(沒認識全很正常,但完全不了解就有點兩耳不聞窗外事一心只讀聖賢書的味道了……),不懂 Web 標準是怎麼回事或者不在意標准,遇到兼容問題就復制粘貼搜到的代碼,對於一些在社區里是常識的坑毫無意識地各種踩,「離開了jQuery/某庫/某框架就不會寫前端」星人,或者平時根本沒怎麼做過前端的東西,只是做做 Web 項目順帶寫前端,到應聘了臨門一腳跑過來……不管是平時學習還是筆試面試,盡量避免向這些特徵靠攏就可以了。事實上大廠們招人不一定會要求這么嚴格,而且大廠里的團隊本身也未必個個靠譜,但是平時有在這些方面努力的話,起碼如果掛了會知道自己哪裡不足,或者到底是他的問題還是你的問題……
以上大概就是我覺得拿到大廠(or前端比較靠譜的中小廠)前端offer需要的水平,其實我感覺沒必要拿「實習」這個詞來限定自己,盡量往高水平靠攏,才能做到是你來選公司,而不是公司來選你,這樣你才能結合興趣/家庭/個人規劃之類的因素拿到最適合自己的 offer。另外,我覺得面試這回事是這樣的,上面提到的這些特徵,每一條單獨拿出來,在不確定面試官的情況下,既不是拿到offer的充分條件,也不是拿到offer的必要條件,某一條不滿足,也不是拿不到offer的充分或必要條件。大廠的面試官有很多種,有些設計出身喜歡問設計,有些後端出身喜歡問偏後端的東西,有些喜歡問你API細節,有些喜歡問你實現思路,有些喜歡看你學習能力,有些面試官本來就不是前端所以喜歡問你基礎題。如果你側重某一些方面,雖然無可厚非,但是運氣不好遇上期望不同的面試官,可能你就會得到比較低的評價或者掛掉。確定能拿 offer 的唯一途徑,就是面面俱到,這當然是不可能的要求,但大廠的種種因素配合起來往往就是在找這種不存在的人才,真的想拿 offer 的話,就只有硬著頭皮盡量靠攏。
就像國內很多大廠里比較著名的前端們文章/博客/知乎里提到過的一樣,前端這塊水不是很深,但水非常非常寬,在考慮將來作為一個前端如何發展如何應對天花板之前,先要腳踏實地把這些屬於前端的「本分」的東西搞好。事實上前面提到的這些東西我也沒有全都做到。作為前端,個人覺得最重要的是要保持一顆開放、謙卑的心,不要抵觸新東西,永遠記得外面的世界還有很多東西自己不懂,要繼續學習。
B. 面試Web前端需要注意什麼會面試哪些問題
作為一名HTML5前端工程師,為了工作,為了就業我們免不了要參加各種各樣的面試。為此總結了面試前的注意事項:
第一:注意自己的儀容儀表
面試之前,一定要再次從頭到腳地將自己的儀容儀表檢查一遍。檢查時主要包括,自己的牙縫是不是還有食物殘渣,所以你需要就近找一個衛生間,如果沒有衛生間就近找一個角落也是可以的,但是切記一定不要在大庭廣眾之下。因此,為了給自己整理出著裝的時間請在約定時間前20分鍾到達。
第二:再次檢查面試時所需的資料是否都已帶全
這些資料主要包括:身份證明、學歷文憑證明、個人簡歷、以往作品等等,如果這些東西齊全之後,需要對這些資料做一個整理與排序。因為沒有哪個面試官希望看到面試者拿出一堆「莫名其妙」的東西塞給他,讓他自己再一頁一頁的翻找自己需要的內容,如果說這些資料在面試官手中不小心散落一地,結果可想而知。這樣的求職者在面試官眼中也一定不是一個讓人放心、有條不紊的員工。當然如果檢查時發現資料沒有帶全,也不要緊張。反而你要慶倖幸虧及時檢查,也有足夠的時間組織語言去向面試官解釋。
第三:面試之前將通信工具調成振動或關閉狀態
雖然說面試者與面試官之間是一個平等的關系,但畢竟你是去人家公司求職的,始終處於一個被動的狀態,所以最起碼的尊重還是要做到的。曾經有調查顯示,對於面試過程中接電話或是被電話打斷的求職者,會被HR減分。
第四:等候面試官時,仔細觀察多了解面試公司
在等候面試官時,可以暗自觀察一下公司的大體情況比如員工的著裝風格、公司的LOGO或是貼在牆上的企業文化、公司的環境等等,一來可以在接下來的面試過程中表現出自己對公司的認同感,二來也可以讓自己對求職公司多些了解,以確定是否要接受這里的工作。如果你身邊有公司的資料宣傳架,不妨取一本翻看一下,也會增加HR對你的好感。
第五:放鬆心情,保持自信
面試時一定要保持一定的自信,這樣也會給面試官留下很好的印象。面試只是你步入工作的第一步,即便是失敗了那也是人生重要的經歷。失敗是為了更好的迎接下一個挑戰。
作為一名web前端工程師千萬不要覺得懂技術面試就能萬事大吉了,像以上五點細節性的東西也是一定要掌握的。
面試題系列:
網頁鏈接
C. web前端開發面試流程是怎樣的
首先投簡歷,等待hr通知面試,一般情況下先填資料,做測試題,接著開始第一面(一般問經你的個人情況,工作經歷等),資料已經交給技術,等一面通過之後接著二面,二面一般是技術面試,問你開發相關的技術問題(例如布局問題,js,框架之類的),有些公司還需要上機操作(寫一兩個頁面或者開發一個js方法等),有些公司是通過之後直接進行3面有些是改天再進行3面,3面一般就是項目經理或總經理問你一些各種各樣的問題(隨機應變就行,也有一些公司沒有這個環節),如果3面都過了,基本上就是面試成功了,接下來就是4面,也就是人事主管和你談工資待遇等問題了,這個談好之後就會告訴你什麼時候過來上班,要准備什麼東西,當然一般還會有正式的工作邀請函發到你的郵箱。如果沒有3面的公司,那人事這個環節就直接是3面了。
還有一些公司是一面之後等通知,通過的就通知你二面,然後再等通知,然後通過再三面(這樣的公司我一般不會等,太浪費時間)
D. 電腦培訓分享前端面試需要掌握哪些html問題
程序員技術面試是永遠都不會缺席的,所以為了能夠讓大家順利的通過面試,我們今天就一起來了解一下,與html相關的一些面試題都有哪些。
1、什麼是盒子模型?
有些面試官會問你對盒子模型的理解,在我們平時看到的網頁中,內部的每一個標簽元素它都是有幾個部分構成的:內容(content)、外邊距(margin)、內邊距(padding)、邊框(border),四個部分組成,當你說完這些面試官是不會滿意這個答案的,因為還有一個重點(IE盒模型和標准盒模型的區別)———IE盒模型的content包括border、padding
本文由@IT·平頭哥聯盟-席填坑官?蘇南分享
2、頁面導入樣式時有幾種方法,它們之間有區別?
link標簽引入,也是當下用的多的一種方式,它屬於XHTML標簽,除了能載入css外,還能定義rel、type、media等屬性;
@import引入,@import是CSS提供的,只能用於載入CSS;
style嵌入方式引入,減少頁面請求(優點),但只會對當前頁面有效,無法復用、會導致代碼冗餘,不利於項目維護(缺點),此方式一般只會項目主站頁使用(騰訊、淘寶、網易、搜狐)等大型網站主頁,之前有看到過都是這種方式,但後來有些也舍棄了
小結:link頁面被載入的時,link會同時被載入,而@import引用的CSS會等到頁面被載入完再載入,且link是XHTML標簽,無兼容問題;link支持動態js去控制DOM節點去改變樣式,而@import不支持,
3、簡單講述一下塊元素、內聯元素、空元素有哪些,它們之間的區別?
行內元素有:a、b、span、img、input、select、textarea、em、img、strong(強調的語氣);
塊級元素有:ul、ol、li、dl、dt、dd、h1、h2、h3、h4p、section、div、form等;
空元素:inputtype="hidden"/>、br>、hr>、link>、meta>;
小結:塊元素總是獨佔一行,margin對內聯元素上下不起作用;
4、說說cookies,sessionStorage、localStorage你對它們的理解?
cookie是網站為了標示用戶身份而儲存在用戶本地終端上的數據(通常經過加密),cookie數據始終在同源的http請求中攜帶,記會在瀏覽器和伺服器間來回傳遞。
sessionStorage和localStorage不會自動把數據發給伺服器,僅在本地保存。
大小:cookie數據大小不能超過4k,sessionStorage和localStorage雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。
時效:localStorage存儲持久數據,電腦培訓http://www.kmbdqn.com/發現瀏覽器關閉後數據不丟失除非用戶主動刪除數據或清除瀏覽器/應用緩存;sessionStorage數據在當前瀏覽器窗口關閉後自動刪除。
E. 前端開發面試回答,你怎麼回答
我面試過很多 前端程序員,非常了解面試者和面試官的心理,我可以很負責的告訴你:
就算面試你的人說你只能拿8K,但是你完全可以通過各種方法去拿到10K以上的薪資!
面試的時候面試官都是什麼樣的心理?
大多數公司的領導都會通過給你構造一個宏偉的藍圖以及對你進行技術打擊,來讓你降低標准,因為任何一家公司都希望花最少的錢請到最NB的技術人才,其實雙方就是一個周旋的過程,看誰的情商更高一些,但往往都是面試者被面試官拿下的情況比較多。
我給面試經驗不多的 前端程序員4個建議:
1、說工資時千萬不要說自己的理想工資,在這個之上虛高一點!
假設你預期的薪資是10k,你很實在的說要10k,那麼按照常理來說,你的工資標準是一定會被往下進行打壓的。
你可以先說自己以前的工作的薪資在11K左右,現在換份工作想要13K的薪資,這個時候面試官就會想,這個人以前的工資是11k,現在給他10k他肯定是不會來的,但他還是會跟你進行壓價,但是壓價肯定都是在10k以上的,所以你和面試官談判的時候,如果他認可你,那麼你的薪資應該就會在10k-13k之間,無論最終是10k還是11k或者12k,我們的目標都已經達到了。你可以進行一番思考,最終同意對方的開價。
但是你不要跟輕易的答應,一定要拿捏一下,讓對方覺得你也在考慮,最終你選擇了他們公司,要表達出對他們公司的願景,自己中意的是職業發展,喜歡的是公司氛圍等等因素,這樣對方才會認為你是看重公司的發展,而不是因為工資。關於這點我只能說,華夏民族的人和人交流的關系是世界最微妙的,這些套路大家心知肚明,但是你用和不用還真的是兩種效果。
2、設置一個自己的心理價位
如果對方說的薪資低於這個心理價位,我們一定要果斷拒絕,保持我們的原則性,不要因為對方說了而讓你降低了自己的心理價位,這樣也會讓面試官覺得你非常的有原則,非常自信,人們都尊重這樣的人,如果你一味的做舔狗,下場會非常悲慘。
根據我十年多的IT從業經驗來看,即使是做同樣的工作,也會存在著很多工資高低差距較多的情況,所以不要掉在一棵樹上,現在社會工作機會這么多,只要有實實在在的技術,工作是很容易找的,一定要多去嘗試。
3、凸顯自己的價值,讓對方覺得你是個人才
如果之前兩點沒有達到預期成效,但你又非常看好這家公司,就該盡力爭取了;
用自己之前做成的事情說事情,最好是用數據給面試官說明,表達清楚自己為什麼要這樣的薪資,讓對方感覺到你值這么多錢,如果對方公司現在比較缺人,而且你要的薪資沒有特別離譜,還有有希望拿下的。
4、公司一般都有獎金福利可以彌補工資的欠缺
大多數人都想不到那麼遠,都是盯著眼前的薪資,但其實很多公司都有項目提成、獎金,這也是錢啊,有一些不錯的公司都是14薪往上,所以在跟公司談的時候,一定要去問他們是否有獎金、年終獎之類的福利。
除了被壓榨薪資的問題,還有以下幾點是必須要注意的!
1、項目作品
面試的時候,除了基礎的知識技術外,一個項目經驗是非常重要的,面試官會著重去問你的項目過程,所以准備好一份好的項目實戰,不只是證明你對這次面試的重視,更是證明你有能力勝任這份工作的利器。
2、去背那些常問的面試題
面試題對於以下幾個問題都會問:
·自我介紹(建議30s-60s)
·了解我們公司的基本情況嗎?
·你上家公司離職的原因是什麼?
·你自己的職業規劃是什麼?
·自我評價一下自己的優缺點?
以上問題都是大部分公司都會問到的,其實面試官只是想多了解你一些,而這些回答在網上有非常標準的答案,如果你覺得自己回答不好,你可以去網上找一些標準的答案背一下,還是非常有必要的,做到萬無一失。
3、假設面試官沒有跟你說薪資的問題,那麼我們也不要主動去提及,這樣會顯得你非常的著急,最好是先拿到offer之後再去談薪資,這樣對於我們來說是非常有利的,經驗之談。
4、面試的時候不要對方問一句你就答一句,你一定要明白面試的本質是什麼,在短時間內展示你的才華,方方面面的才能,給對方留下一個好的印象。
5、面試的過程中,是你展現的時候,所以80%的時間都應該你來主導,你來展示自己的才能,一定要非常著重的表現自己。
6、在回答面試官時,換位思考幾秒鍾:
·他為什麼要問這個問題?
·他想知道什麼答案?
·他想通過這個答案判斷出什麼?
所謂知己知彼才能百戰不殆,你一定要換位思考對方問的問題,想要知道什麼,從你的回答中他是否可以得到他想要的答案,所以面試是一門非常深的學問,人與人之間心理的博弈。
總結:
以上全部都是面試技巧方面,這屬於細活,而真正掌握技術才是根本,如果你沒有掌握良好的技術,技巧也幫助不了你找到一份工作,當你的技術達標,在加上好的面試技巧,就是如虎添翼,工作隨便你選擇。
常在這里回答問題,熱愛技術,喜歡幫別人解答行業技術問題和行業知識。
如果大家對於學習前端有任何不懂的可以隨時來問我,我給你提供一個非常不錯的前端交流學習qun:前面是二九六,中間是二一二,後面是五六二。有問題就在裡面問我,這樣你可以少走很多彎路,做起來有效率,記得多跟有經驗的人交流,別閉門造車。如果沒有比較好的教程,也可以管我要。
F. 前端開發者面試必備的3個點
最近是招聘旺季,我也在負責我們公司的招聘,但是面試過程大部分前端面試者給我的感覺思維比較窄,以及陳述問題時候比較亂,整體給人感覺不是理想。下面是我作為一個面試官從三個維度給面試者建議和思考吧。
一.自我介紹
1.自我介紹,可以簡單介紹你畢業什麼學校,什麼專業
2.出來負責的項目,每個項目自己充當的角色
3.每個項目使用前端技術+後端技術
簡單大概的說出來就可以了,不要詳細到你哪年進入公司,哪年離開公司,負責項目做什麼的,說一大通。這個對我們面試官來說,想讓你自我簡單介紹,其實考察點有兩方面:
A.面試者的表達能力和概括能力
B.面試者目前掌握什麼技術,做過什麼項目,在項目中的角色來初步判定這個人的能力
二.問題回答
在本人問他們做過項目中,自己感覺挑戰最大的項目是什麼,你在這個項目中做了什麼,遇到什麼問題,怎麼解決這些問題的
1.有些面試者給我的答案直接說沒有比較大的挑戰;這個讓我感覺這個人可能沒有聽懂我的問題,工作那麼多年,難道沒有一個項目可以拿來說的,那我拿什麼來判定你的能力呢?難道憑你幾句話,說我很牛逼的,沒有什麼困難難得到我?我就信任你了,伯樂尋找千里馬都要知道幾個千里馬的特徵吧。所以沒有你也要在面試前准備好自己做過的項目和總結,在項目中自己做了什麼,充當什麼覺得。
2.有些面試者回答這個問題,在介紹項目的時候,很大概的說,還有就是一句話前端都是我做的,這些都是我設計的;這個讓我感覺這個人也沒有聽懂我的意思,我在問你這個問題的時候,肯定是希望你詳細介紹你的項目,這個項目使用者是誰,讓我知道誰在使用這個項目;你負責哪些模塊,哪些組件,那些模塊實現什麼業務邏輯,用到什麼技術,這個能讓我更加知道你項目的業務,才能從你描述中我知道這類的業務會遇到什麼問題,以及你使用的技術是否合理,能讓我更加判定你的能力,才能更好的提出問題,才能更好的面試下去。
3.回答問題的時候不要想到什麼就答什麼,要有陳述性,比如1,xxx;2.yyyyy;3.wwww的陳述,這樣能讓我知道你總結過,表達和陳述上比較清晰,思維好;想到什麼答什麼的,讓我感覺思維可能比較亂,有可能我聽懂了你的表述,但是讓我感覺表達能力有些欠缺。
4.以及在你項目中遇到的問題,你要陳述問題,你是怎麼思考的,而不是針對問題就直接說網路,google就解決了。我們大家都知道,遇到問題都會去網路,google.但在這問題的前提條件是問題是,架構上的問題,還是代碼的bug問題,還是方案上的問題。你至少陳述清楚,是不是還有其他方案,在其他方案中,你為什麼選擇這個方案。這個能讓知道你在面對問題的時候,你是否思考了其他的問題,想得越多,知道能體現出的思維比較發散,遇到問題可以有其他方式解決,而不是死磕一棵樹上。
三.前端技能
前端技能在問到很多面試者的時候感覺自己都懂前端,其實他們只是懂使用js敲代碼而已,很多前端知識,以及前端原理都不懂,只會使用的話,那麼永遠只會走來人家的後面。就那一個比喻來說吧,如果你只是一個會開車的司機,不會修車或者造車,那麼如果哪天車出了毛病,你都不知道,到時候才去學習車的構造原理。或者你會說我直接給維修廠不就可以了,如果維修廠關門了呢怎麼辦。所以我們前端開發人員還是要腳踏實地,不要說我會使用vuejs,react前端框架,問你一個mvvm模式是什麼,你都說不知道,怎麼實現mvvm框架,在不使用別人開發mvvm框架,自己可以開發一個簡單的mvvm框架?前端的開發者問問自己?以我個人的要求,前端開發者必須掌握
1.HTTP協議
2.前端安全
3.常用前端框架的三駕馬車react,vuejs,angularjs目前比較流行的以及jquery(工具庫)的使用
4.前端基礎知識,跨域,es6新語法
5.Nodejs的開發,express,koa等常用框架
6.了解一些資料庫知識
7.能理解封裝業務組件和公用組件
8.前端性能優化
9.前後端分離
如果可以,能掌握更加深層次的知識點:
1.前端架構,設計模式
2.前端工程化開發,測試,打包,發布
3.自己實現前端架構代碼以及開發工具
這些是我近期的一些總結,也希望能給最近正在找工作,最近准備開始轉行前端的小夥伴們一個方向。
在面試前做好准備,找好自己的定位,成功收獲高薪!
G. 前端開發職位面試的時候一般會問什麼樣的專業問題
一、 關於常見的問題(每題10分,共110分)
1. 自我評價一下HTML/CSS/JS的掌握情況
2. 塊級元素和行內元素都有哪些? 行內元素有哪些特點?
3. 函數的幾種定義方法
4. 對象的定義方法?
5. 類的定義方法(prototype)(繼承)?
6. 什麼是閉包,及其作用?
7. 」==」和「===」的不同?
、、、、、
各職位各公司面試問題答案:星宿人才
H. 面試web前端的工作,會被問到什麼問題
在實際的面試中,你可能需要使用 JavaScript、CSS 和 HTML 來編寫代碼。在你的面試期間,你可能需要實現 UI、構建窗口小部件或使用 Lodash 和 Underscore.js 這樣的庫編寫常用的實用程序函數。例如:構建常見的 Web 應用程序的布局和交互,例如類似 Netflix 網站那樣的。實現小部件,如日期選擇器、輪播或電子商務網站購物車。寫一個類似 debounce 或深度 clone 對象的函數。
I. Web前端崗位面試題有哪些
前端面試題匯總,基本上會有四大類問題,具體如下:
一、HTML
1、Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
2、HTML5 為什麼只需要寫 <!DOCTYPE HTML>?
3、行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
4、頁面導入樣式時,使用link和@import有什麼區別?
5、介紹一下你對瀏覽器內核的理解?
6、常見的瀏覽器內核有哪些?
7、html5有哪些新特性、移除了那些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區分 HTML 和 HTML5?
8、簡述一下你對HTML語義化的理解?
9、HTML5的離線儲存怎麼使用,工作原理能不能解釋一下?
10、瀏覽器是怎麼對HTML5的離線儲存資源進行管理和載入的呢?
11、請描述一下 cookies,sessionStorage 和 localStorage 的區別?
12、iframe有那些缺點?
13、Label的作用是什麼?是怎麼用的?(加 for 或 包裹)
14、HTML5的form如何關閉自動完成功能?
15、如何實現瀏覽器內多個標簽頁之間的通信? (阿里)
16、webSocket如何兼容低瀏覽器?(阿里)
17、頁面可見性(Page Visibility)API 可以有哪些用途?
18、如何在頁面上實現一個圓形的可點擊區域?
19、實現不使用 border 畫出1px高的線,在不同瀏覽器的Quirksmode和CSSCompat模式下都能保持同一效果。
20、網頁驗證碼是幹嘛的,是為了解決什麼安全問題?
21、tite與h1的區別、b與strong的區別、i與em的區別?
二、css
1、介紹一下標準的CSS的盒子模型?與低版本IE的盒子模型有什麼不同的?
2、CSS選擇符有哪些?哪些屬性可以繼承?
3、CSS優先順序演算法如何計算?
4、CSS3新增偽類有那些?
5、如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?
6、display有哪些值?說明他們的作用。
7、position的值relative和absolute定位原點是?
8、CSS3有哪些新特性?
9、請解釋一下CSS3的Flexbox(彈性盒布局模型),以及適用場景?
10、用純CSS創建一個三角形的原理是什麼?
11、一個滿屏 品 字布局 如何設計?
三、常見兼容性問題?
1、li與li之間有看不見的空白間隔是什麼原因引起的?有什麼解決辦法?
2、經常遇到的瀏覽器的兼容性有哪些?原因,解決方法是什麼,常用hack的技巧 ?
3、為什麼要初始化CSS樣式。
4、absolute的containing block計算方式跟正常流有什麼不同?
5、CSS里的visibility屬性有個collapse屬性值是幹嘛用的?在不同瀏覽器下以後什麼區別?
6、position跟display、margin collapse、overflow、float這些特性相互疊加後會怎麼樣?
7、對BFC規范(塊級格式化上下文:block formatting context)的理解?
8、CSS權重優先順序是如何計算的?
9、請解釋一下為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式
10、移動端的布局用過媒體查詢嗎?
11、使用 CSS 預處理器嗎?喜歡那個?
12、CSS優化、提高性能的方法有哪些?
13、瀏覽器是怎樣解析CSS選擇器的?
14、在網頁中的應該使用奇數還是偶數的字體?為什麼呢?
15、margin和padding分別適合什麼場景使用?
16、抽離樣式模塊怎麼寫,說出思路,有無實踐經驗?[阿里航旅的面試題]
17、元素豎向的百分比設定是相對於容器的高度嗎?
18、全屏滾動的原理是什麼?用到了CSS的那些屬性?
19、什麼是響應式設計?響應式設計的基本原理是什麼?如何兼容低版本的IE?
20、視差滾動效果,如何給每頁做不同的動畫?(回到頂部,向下滑動要再次出現,和只出現一次分別怎麼做?)
21、::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。
22、如何修改chrome記住密碼後自動填充表單的黃色背景 ?
23、你對line-height是如何理解的?
24、設置元素浮動後,該元素的display值是多少?(自動變成display:block)
25、怎麼讓Chrome支持小於12px 的文字?
26、讓頁面里的字體變清晰,變細用CSS怎麼做?(-webkit-font-smoothing: antialiased;)
27、font-style屬性可以讓它賦值為「oblique」 oblique是什麼意思?
28、position:fixed;在android下無效怎麼處理?
29、如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?(阿里)
30、display:inline-block 什麼時候會顯示間隙?(攜程)
31、overflow: scroll時不能平滑滾動的問題怎麼處理?
32、有一個高度自適應的div,裡面有兩個div,一個高度100px,希望另一個填滿剩下的高度。
33、png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用。有沒有了解過webp?
34、什麼是Cookie 隔離?(或者說:請求資源的時候不要讓它帶cookie怎麼做)
35、style標簽寫在body後與body前有什麼區別?
四、JavaScript
1、介紹JavaScript的基本數據類型。
2、說說寫JavaScript的基本規范?
3、JavaScript原型,原型鏈 ? 有什麼特點?
4、JavaScript有幾種類型的值?(堆:原始數據類型和 棧:引用數據類型),你能畫一下他們的內存圖嗎?
5、Javascript如何實現繼承?
6、Javascript創建對象的幾種方式?
7、Javascript作用鏈域?
8、談談This對象的理解。
9、eval是做什麼的?
10、什麼是window對象? 什麼是document對象?
11、null,undefined的區別?
12、寫一個通用的事件偵聽器函數(機試題)。
13、[「1」, 「2」, 「3」].map(parseInt) 答案是多少?
14、關於事件,IE與火狐的事件機制有什麼區別? 如何阻止冒泡?
15、什麼是閉包(closure),為什麼要用它?
16、javascript 代碼中的」use strict」;是什麼意思 ? 使用它區別是什麼?
17、如何判斷一個對象是否屬於某個類?
18、new操作符具體幹了什麼呢?
19、用原生JavaScript的實現過什麼功能嗎?
20、Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
21、對JSON的了解?
22、[].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) }) 能解釋一下這段代碼的意思嗎?
23、js延遲載入的方式有哪些?
24、Ajax 是什麼? 如何創建一個Ajax?
25、同步和非同步的區別?
26、如何解決跨域問題?
27、頁面編碼和被請求的資源編碼如果不一致如何處理?
28、模塊化開發怎麼做?
29、AMD(Moles/Asynchronous-Definition)、CMD(Common MoleDefinition)規范區別?
30、requireJS的核心原理是什麼?(如何動態載入的?如何避免多次載入的?如何 緩存的?)
31、讓你自己設計實現一個requireJS,你會怎麼做?
32、談一談你對ECMAScript6的了解?
33、ECMAScript6 怎麼寫class么,為什麼會出現class這種東西?
34、非同步載入的方式有哪些?
35、documen.write和 innerHTML的區別?
36、DOM操作——怎樣添加、移除、移動、復制、創建和查找節點?
37、.call() 和 .apply() 的含義和區別?
38、數組和對象有哪些原生方法,列舉一下?
39、JS 怎麼實現一個類。怎麼實例化這個類
40、JavaScript中的作用域與變數聲明提升?
41、如何編寫高性能的Javascript?
42、那些操作會造成內存泄漏?
43、JQuery的源碼看過嗎?能不能簡單概況一下它的實現原理?
44、jQuery.fn的init方法返回的this指的是什麼對象?為什麼要返回this?
45、jquery中如何將數組轉化為json字元串,然後再轉化回來?
46、jQuery 的屬性拷貝(extend)的實現原理是什麼,如何實現深拷貝?
47、jquery.extend 與 jquery.fn.extend的區別?
48、jQuery 的隊列是如何實現的?隊列可以用在哪些地方?
49、談一下Jquery中的bind(),live(),delegate(),on()的區別?
50、JQuery一個對象可以同時綁定多個事件,這是如何實現的?
51、是否知道自定義事件。jQuery里的fire函數是什麼意思,什麼時候用?
52、jQuery 是通過哪個方法和 Sizzle 選擇器結合的?(jQuery.fn.find()進入Sizzle)
53、針對 jQuery性能的優化方法?
54、Jquery與jQuery UI有啥區別?
55、JQuery的源碼看過嗎?能不能簡單說一下它的實現原理?
56、jquery 中如何將數組轉化為json字元串,然後再轉化回來?
57、jQuery和Zepto的區別?各自的使用場景?
58、針對 jQuery 的優化方法?
59、Zepto的點透問題如何解決?
60、jQueryUI如何自定義組件?
61、需求:實現一個頁面操作不會整頁刷新的網站,並且能在瀏覽器前進、後退時正確響應。給出你的技術實現方案?
62、如何判斷當前腳本運行在瀏覽器還是node環境中?(阿里)
63、移動端最小觸控區域是多大?
64、jQuery 的 slideUp動畫 ,如果目標元素是被外部事件驅動, 當滑鼠快速地連續觸發外部元素事件, 動畫會滯後的反復執行,該如何處理呢?
65、把 Script 標簽 放在頁面的最底部的body封閉之前 和封閉之後有什麼區別?瀏覽器會如何解析它們?
66、移動端的點擊事件的有延遲,時間是多久,為什麼會有? 怎麼解決這個延時?(click 有 300ms 延遲,為了實現safari的雙擊事件的設計,瀏覽器要知道你是不是要雙擊操作。)
67、知道各種JS框架(Angular, Backbone, Ember, React, Meteor, Knockout…)么? 能講出他們各自的優點和缺點么?
68、Underscore 對哪些 JS 原生對象進行了擴展以及提供了哪些好用的函數方法?
69、解釋JavaScript中的作用域與變數聲明提升?
70、那些操作會造成內存泄漏?
71、JQuery一個對象可以同時綁定多個事件,這是如何實現的?
72、Node.js的適用場景?
(如果會用node)知道route, middleware, cluster, nodemon, pm2, server-side rendering么?
73、解釋一下 Backbone 的 MVC 實現方式?
74、什麼是「前端路由」?什麼時候適合使用「前端路由」? 「前端路由」有哪些優點和缺點?
75、知道什麼是webkit么? 知道怎麼用瀏覽器的各種工具來調試和debug代碼么?
76、如何測試前端代碼么? 知道BDD, TDD, Unit Test么? 知道怎麼測試你的前端工程么(mocha, sinon, jasmin, qUnit..)?
77、前端templating(Mustache, underscore, handlebars)是幹嘛的, 怎麼用?
78、簡述一下 Handlebars 的基本用法?
79、簡述一下 Handlerbars 的對模板的基本處理流程, 如何編譯的?如何緩存的?
80、用js實現千位分隔符?(來源:前端農民工,提示:正則+replace)
檢測瀏覽器版本版本有哪些方式?
81、我們給一個dom同時綁定兩個點擊事件,一個用捕獲,一個用冒泡,你來說下會執行幾次事件,然後會先執行冒泡還是捕獲
J. web前端經典面試題
為大家帶來一些web前端的面試題,希望可以幫助到大家啊。
1.css3有哪些新特性?
選擇器、圓角、動畫、多重背景、背景的寬度高度flex布局響應式布局邊框陰影文本陰影
2.響應式布局怎麼理解的,響應式布局是通過什麼實現?
根據不同的屏幕載入不同的css樣式
1).移動端適配
2).一套代碼適配pc端移動端多個
3.js創建對象有哪幾種方式?
1).自面量
2).newObject
3).構造函數
4.es6有哪些新特性?
1).letconst
2).模板字元串
3).方法的簡寫屬性的簡寫
4).三點運算符
5).解構賦值
6).箭頭函數
7).setmap
8).class類
9).模塊化
5.箭頭函數和普通的方法有什麼區別?
1).箭頭函數省略了function
2).箭頭函數裡面的this指向上下文(可以改變this指向)
6.gulp可以干什麼
gulp自動化構建工具。
壓縮代碼合並代碼壓縮圖片自動處理前綴創建web服務處理sass
7.清除浮動有哪些方法。
1).浮動元素的父元素overflow:hiddenoverflow:auto
2).浮動元素的最後面加一個空div給他clear:both
3).after偽類清除浮動
.clearfix:after{
content:"";
dislpay:block;
height:0px;
clear:both;
}
4)、給父元素設置高度。
8.行內元素塊元素的區別?
1)塊元素默認獨佔一行,行內元素默認情況不獨佔一行,行內元素的的寬度就是內容的寬度
2)默認情況塊元素可以設置寬度高度默認情況行內元素不可以設置寬度高度
3)默認可以margin上下左右,行內默認只能margin左右不能上下。
9.網站載入速度優化?
1).圖片不失真盡量小
2).多個背景圖片合並
3).代碼壓縮代碼合並
4).js寫到頁面最底部
5).懶載入
6).不要有冗餘代碼
7).伺服器帶寬款一些
8).伺服器固態硬碟
9).開啟緩存
10.以前寫代碼什麼情況會成出現亂碼怎麼解決?
解決亂碼文件保存的編碼和設置的編碼必須保持一致
11.以前如何測試調試移動端頁面
1).首先在瀏覽器自帶的調試工具模擬器裡面調試
2).真機的內置瀏覽器調試
3).真機上面的UC裡面調試
4).真機上的微信裡面調試。