我是一名前端工程師,通俗地說,就是一隻程序猿。css
雖然大學專業也的確是IT相關專業,但求學期間划水四年,僥倖未掛科並順利畢業,找的第一份工做是軟件公司的銷售類職位,想着多少也算專業相關愉快入職,卻不管如何適應不了酒桌上的觥籌交錯,工做得痛苦不堪。某天一衝動辭了職,而後由於下一步沒有方向開始了漫長的失業生涯。html
我已經記不太清楚爲何本身當時要選擇前端開發這一方向了。不過前端入門確實簡單,不須要一點編程知識你就能作出一個漂亮的靜態頁面,甚至還能作出動畫效果,總而言之,很是容易讓人有成就感。或許這就是緣由吧。前端
學習了差很少半年,主要是看網上的視頻課程,買了一些學習前端的最新的書籍,刷了不少公司面試題,我開始找工做,而後發現崗位雖然很多,但邀請面試的少之又少。面試
第一個面試機會來自一家初創公司,面試以前我緊張到胃不舒服。面試官直截了當地問我一天能作幾個頁面。我愣住了,回答從未測試過,因此很差說,因而他現場讓我作了一個簡單的頁面看成測試,而後對速度表示大概滿意,隨即示意我經過了面試。算法
我對這樣的輕率感到大爲吃驚,又瞭解到公司並無其餘前端人員,思量之下仍是拒絕了這個機會。編程
在面試我如今所在的這家公司的時候,總監面試個人時候問:「爲何以前一直自學,如今卻決定出來找工做?」跨域
我回答:「由於沒錢了要過不下去了。」數組
後來公司老闆面試個人時候,問我:「有沒有本身學習能力不錯的實際證實?」promise
我想半天回答剛剛總監說我學得還挺快的。瀏覽器
後來我把面試的過程講給同窗聽的時候,他笑得前仰後合。不過好在這場面試的結局是好的——我順利入職啦。
在這家公司作了大概一年半之久,由於我的職業追求,這家公司沒法提供本身專業和職業發展的條件,但願換一家公司,爭取到發展的條件。
此次和以前剛轉行找工做不同,投的都是一些大廠,但願本身之後有更好的發展,固然了啦,大公司工資起點高,福利待遇好,這個是毋庸置疑的。
投了不少公司,字節跳動算是比較心儀的公司,在面試前準備了好久,刷了不少面試題,,能夠說準備得十分充分了。
屏幕正中間有個元素A, 隨着屏幕寬度的增長,
始終須要知足如下條件:
函數中的 arguments 是數組嗎?若不是,如何將它轉化爲真正的數組
請說出如下代碼打印的結果
if ([] == false) {console.log(1);}; if ({} == false ) {console.log(2);}; if ([]) {console.log(3);}; if ([1] == [1]) {console.log(4);};
請說出如下代碼打印的結果
async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { console.log('async2'); } console.log('script start'); setTimeout(function () { console.log('setTimeout'); }, 0); async1(); new Promise(function (resolve) { console.log('promise1'); resolve(); }).then(function () { console.log('promise2'); }); console.log('script end');
實現ES5中Function原型的bind方法, 使得如下程序最後能輸出'success'
function Animal(name, color) { this.name = name; this.color = color; } Animal.prototype.say = function () { return `I'm a ${this.color} ${this.name}`; }; const Cat = Animal.bind(null, 'cat'); const cat = new Cat('white'); if (cat.say() === 'I\'m a white cat' && cat instanceof Cat && cat instanceof Animal) { console.log('success'); }
請用算法實現,從給定的無序、不重複的數組data中,取出n個數,使其相加和爲sum。並給出算法的時間/空間複雜度 。(不須要找到全部的解,找到一個解便可)
function getResult(data, n, sum) { }
一面結束,次日下午hr打電話約二面。
代碼運行結果
var a = function () { this.b = 3; } var c = new a(); a.prototype.b = 9; var b = 7; a(); console.log(b); console.log(c.b);
function repeat(func, times, wait) { } const repeatFunc = repeat(alert, 4, 3000)
二面結束,當晚hr打電話約三面,那個激動啊,終於過了二面了
三面有感:前兩面都是作題 + 原理的面試狀況,三面迴歸了聊技術的方式。可能由於是大佬面,總感受壓力很大,一股本身涼了的感受(多是由於太菜了),每一個問題面試都會一直追問,問到你答不出來爲止才換問題。三面總共有兩次被面試官說「不聊這個了,咱們換個話題吧」。
三面結束後,真的是慌得一批,覆盤完感受每一個問題面試官都不是很滿意,感受涼了,焦急得等待結果。恰巧是週五,若是當天等不到結果,那就可能要等到下一週了,果不其然當天沒消息。
週六下午等不住了,發短息問了hr。要特別感謝hr謝謝,非工做時間幫我查詢結果,告訴我經過了,次日會聯繫我。(心裏其實超級激動)
從轉行到如今,差很少兩年的時間,雖不能和大佬相比,但也是學了不少東西。我我的在學習的過程當中,習慣簡單作作筆記,方便本身複習的時候可以快速理解,如今將本身的筆記分享出來,和你們共同窗習。
我的將這段時間所學的知識,分爲三個階段:
第一階段:HTML&CSS&JavaScript基礎
第二階段:移動端開發技術
第三階段:前端經常使用框架