都說程序員應該多出去面試,否則不知道本身有多菜,本着我是菜雞我怕誰的鐵頭精神,這兩天也積極投遞簡歷,尋求面試機會,可是由於經驗不足的問題,不少大公司連簡歷都過不了,只有一些創業公司給了面試機會,不過創業公司問的也挺具表明性的,不敢苟藏,分享出來。css
首先自我介紹一下,我叫XXX,武漢某211小本,18年6月畢業,剛畢業的時候寫了三個月的java(Ctrl C + Ctrl V);三個月前,前端基礎很薄弱,連引用類型和值類型都傻傻分不清楚,是一個24k如假包換的菜雞。通過三個月的學習,自我感受長進了很多(或許是錯覺),結果面試下來仍是以爲,嗯,果真仍是菜雞。前端
由於是創業公司,就不報公司名字了(反正沒人聽過),是一家作區塊鏈的。vue
一面:
- 一道算法題,大意以下:1由一個1組成(1 = 1),2由一個2或兩個1組成(2 = 1 + 1; 2 = 2),3由一個3,3個一,一個1和一個2組成(3 = 3; 3 = 1+1+1; 3=1+2),問n有幾種組成方式。(dp,找出dp表達式便可)
- 說一下數組去重的方式(這個芽羽大神的博客上講的很清楚,想了解的能夠去看一下,set和O(n^2)複雜度的這兩個方法確定不是面試官想聽的,排序去重,indexOf,es6等是比較好的答案,爲了裝逼,我還說了一個前綴樹去重)
- 你說到前綴樹去重,那你講一下怎麼作(裝逼成功,想了解前綴樹的本身百度去吧,不少資料)
- 說一下vue雙向綁定的原理(這裏從源碼層面講了十多分鐘,效果應該還不錯)
- 平時用過哪些es6的特性(let,const,模板字符串,promise,箭頭函數等等)
- promise是解決什麼的
- 若是要你實現一個promise,你該怎麼實現(這個由於看過promise的實現方法,也答得不錯)
- 有了解async,await嗎(generator的語法糖,使異步代碼表現得像同步)
- 那你說說generator呢
- 講一下XSS(對不起,只知道是安全方面的,瞭解的很少)
- 有了解過weex,rn這些嗎(沒,目前只作過pc端)
- node呢(沒)
- 說說跨域吧(瀏覽器有個同源策略,巴拉巴拉,解決方案是,後端設置cors,先後端配合jsonp,我的以爲最好的方案是修改nginx配置)
- 講一下閉包(這個要講的東西不少,可以把做用域,做用域鏈,執行上下文棧講清楚便可)
- 如何實現一個居中佈局(老生常談了)
- 各類奇奇怪怪的css,具體題目忘了,反正css答得很差
一面大概面了一個多小時,我覺得掛了,結果讓我等一下,因此又苟到了二面:
- 講一下vue數據驅動原理
- 講一下vNode,爲何要用vNode,講一下diff算法
- 講一下let和var的區別
- 你剛剛說到暫時性死區,講一下暫時性死區呢
- 箭頭函數和普通函數的區別(this?)
- 怎麼實現promise的all方法
- 講一下瀏覽器的緩存
- js的繼承機制
- 說一下閉包
- 瞭解過哪些設計模式
- 怎麼實現一個單例
- 平時獲取知識的渠道(掘金,github,公衆號,微信羣?)
- 有作過weex,rn這些嗎(沒有)
- 怎麼沒去試試大廠(由於菜啊)
- 前端打包工具備瞭解嗎(webpack只跟着官網配過,沒在項目中實操過)
二面大概面了四十多分鐘,我覺得要讓我走了,結果讓我等一下,來了hr,好了,沒了。