非985/211大學畢業,軟件工程專業,前端,坐標:北京
工作三年多,第一家人數 30 多人的創業公司,1 年多。
第二家屬于前端技術不錯的公司,2 年多。
01
我是一個喜歡在技術領域“折騰”的人,技術能力勉強合格,隨著工作經驗的積累,逐漸從一個“填坑”的鍛煉為可以負責復雜的前端項目。
本想著可以在“金九銀十”的時候跳槽成功的,沒想到直到年末才拿到自己想要的大廠offer,也算是功夫不負有心人吧,一輪輪面試下來,也是深深感受到了高級前端的面試套路,今天我們一起來探討一下。
?
跳槽目標:
雖然,我迫切想要換工作,但是也明白裸辭是不明智的,所以“騎驢找馬”成為找工作的方式,對于想要換一份怎樣的工作,綜合考慮以后,我覺得自己的核心訴求是:
技術沉淀
視野+平臺
?
所以,初創公司便不考慮在自己的范圍之內了,我當然也是很想進入互聯網大廠了,奈何明白自己還是有差距的,但不試試怎么知道自己究竟差在哪里呢?找到差距,才能快速提升,對吧?
?
面試的公司:
阿里、網易、滴滴、百度、字節、餓了么、攜程、喜馬拉雅
?
有的結果不理想,但是也算是是檢測了一下自己,查缺補漏,以此督促自己加強學習。
02
具體面試題
這道面試題是你去任何一家大廠面試幾乎都會被問到的問題。如果這道題答不好,那么最后的結果很有可能是涼涼:
請你分析一下,promise,generator,async 三者之間的關系?
下面有個計時器任務,請用這三種方法依次解決它代碼中出現回調地獄的問題。
let t = setTimeout(()=>{ console.log(1111) let t1 = setTimeout(()=>{ console.log(2222) let t2 = setTimeout(()=>{ console.log(3333) },3000) },2000)},1000)
答案奉上~
promise
promise 是一個類函數。當它執行完畢后,會開啟異步任務,這個異步任務還得看 promise 本身的狀態。通俗來說,它的異步任務就是 then 中的回調函數。
那么問題來了。promise 誕生的目的不是為了開啟異步任務,而是為了解決異步代碼的書寫格式,盡量實現函數回調的扁平化,所以我們需要把異步代碼寫在 promise 中進行封裝。
const fnasync = function(value){ return new Promise(function(resolve,reject){ setTimeout(()=>{ console.log(value) resolve() }) })}fnasync(1111, 1000).then(() => { return fnasync(2222, 2000)}).then(() => { return fnasync(3333, 3000)}).catch(err => {console.log(err})
async
async 可以算是異步解決的終結者。雖然 promise 效果出來了,但還是會給開發者們帶來邏輯上的問題。相反,async 的書寫格式簡單明了。
let asyncfn = function (num,timecount) { return new Promise((resolve,reject)=>{ setTimeout(function(){ console.log(num) resolve(); },timecount) })}let fn = async function(){ await asyncfn(1111,1000) await asyncfn(2222,1000) await asyncfn(3333,1000)}fn()
我們只需要關注 await 后面跟的內容就 ok 了。
它們的聯系
對于這三者之間的聯系,其實很好理解。我們可以認為它們是每一次版本升級的產物。
也就是說,generator 其實是 promise 的升級版,但它的邏輯和理解卻要比 promise 復雜。因此,程序員們在上面要花費一些學習成本,所以我個人不推薦大家使用generator。
而 async 是 generator 的升級版,外界都稱它為 generator 的語法糖,那就意味著 async 就是一個小甜點,人人喜歡,因為它簡單易懂還好用,順理成章成為開發者們解決異步方案的不二之選!
03
其實,對于我們這些 1-3 年工作經歷的前端,如何才能在面試時中脫穎而出呢?
踏實的基本功,加上豐富的實戰經驗,技術棧也不要給自己設限,React、Vue,、客戶端開發、Node、Canvas ... 擼起袖子就是干,同時對于目前緊迫的業務涉及的技術也需要深入了解,看學習視頻,多多投資自己。
因此,對于開發人員來說,技術一定得跟業務并進,那么怎樣提升呢?
說到這,我真誠的給你推薦拉勾教育的課程了,大家知道,拉勾深耕招聘領域多年,在“人崗匹配”的過程中,發現很多人才的知識能力體系與企業的用人需求存在偏差。為了解決這個問題,拉勾教育團隊歷經 12 個月的精心打磨,推出《大前端高薪訓練營》。
?
?
現在掃碼,即可免費獲取?Web 前端資料
(涵蓋技能圖譜+源碼+面試題+學習資料)
為什么要推薦《大前端高薪訓練營》?
?
真內推·真就業
大家應該了解,拉勾深耕互聯網招聘多年,打通了「人才培養+人才輸送 的閉環」,學完后,直接幫你內推到對口的大公司,相當于為企業定向招聘,從學習到就業一條龍服務,幫助互聯網人快速成長,實現升職加薪。
?
目前,拉勾教育畢業學員?9?成實現漲薪,最高漲幅達215%,就業企業不乏阿里巴巴、 騰訊、百度、字節跳動、美團、京東等明星企業.
?
真實戰·真項目
拉勾教育的《大前端高薪訓練營》課程設計對標阿里 P7,覆蓋主流前端技術知識,真正從市場需求、商業價值角度出發進行研發,掌握“大廠”最新的開發技能:
權威商業實戰項目剖析,帶你深入到大型互聯網項目實戰中,涵蓋了當下最火熱的項目:在線教育、電商門戶、B端系統。
針對常見業務和技術問題,拉勾提供了全套解決方案,幫你輕松應對技術難題。
真保障·真服務
拉勾是一個互聯網招聘平臺,所以,拉勾網和各大互聯網企業,都有深入的合作關系。目前的企業資源,是 98 萬+。
?
課程僅僅是開始,接下來還會幫你優化簡歷,模擬面試,最后內推到大廠,做到真正的一條龍服務!
免費送大廠資料,手慢無!
我們整理了一個【Web 前端資料】大禮包,對于想了解行業情況的,免費贈送!
?
現在掃碼,即可免費獲取?Web 前端資料
(涵蓋技能圖譜+源碼+面試題+學習資料)
常見問題
?
什么樣的基礎適合學習這門課程?
技術基礎薄弱:只懂應用,不懂底層原理,知其然并不知其所以然,一旦遇到復雜問題就無從下手
自我提升困難:無法建立整體的知識體系,缺少系統化的學習和提升,短期無法提高
項目經驗單一:長期從事技術重復工作,對高階技能等缺乏實戰經驗,職業發展受限制
進大廠無通道:現有的能力和經驗不足以受到大廠的青睞,也沒有獵頭愿意幫忙內推到大廠
?
拉勾教育《大前端高薪訓練營》區別于其他平臺的優勢?
覆蓋 200+ 主流技術點,提供晉升阿里 P7 的完整路徑,體系化夯實技術實力;
100% 還原多個公司的真前端項目,快速積累 Web、小程序、App 等反客戶端領域實戰經驗;
夯實語言底層基礎,8 大階段逐步打造前端核心競爭力,告別野路子;
提供 20+ 商業級前端技術解決方案,輕松應對更多更難的業務問題,學來即用;
直擊面試重點難點,優秀學員可享每月大廠內推機會。
?
?
點擊“閱讀原文”即可參與