面試問答
請說明事件循環(Event loop),以及JS處理同步/異步的順序
JS為單執行續,所有...
按鈴進去公司後會先請你花30分鐘填一張應徵問卷,問題包括上一份工作內容、欲離職原因、上份工作喜歡/討厭的地方、工作上最有
成就/挫折的事、如何面對繁重的工作壓力、認為自己最大的優缺點、如何跟不喜歡的人相處、以前的主管希望你改進的3件事情、通勤方式與時間、現在薪資與期望薪資,透過這些問題判斷公司與應徵者雙方是否適合,有些問題蠻有趣的,能讓你仔細思考統整上份工作的經歷。
筆試完之後會有人把紙收走拿去印,接著等了快30分鐘才等到面試官走進來,因此建議問卷慢慢寫或是帶程式筆記來看。面試官有3個分別是前端工程師、前端主管、PM,主要問問題的都是前端工程師。首先會先介紹公司是做博弈網頁代工、這個職位的工作內容,再請你自我介紹,接著就是快問快答環節,基本上CSS、JS、React、Redux的面試必考題全都問了,由於都是網路上能夠查到的熱門面試問題,因此只要有認真準備難度不會太難。
快問快答完後接著就是專案/作品集環節,介紹專案如何發想、使用哪些技術、遇到什麼問題與如何解決等,另外面試官有對我的專案提出能改進的地方,對這間公司的印象瞬間加分不少。
專案環節結束後便是從履歷和應徵問卷的內容問前端的相關經歷、為什麼選擇做前端等問題,這部分比較偏向聊天,整體面試時間長度大約90分鐘。
因為面試已經有段時間,下面面試問題只能分享還記得的QQ
面試問答
請說明事件循環(Event loop),以及JS處理同步/異步的順序
JS為單執行續,所有同步性的工作瀏覽器會一個個執行,但遇到非同步性的操作就會先放到一個叫做task queue的地方,等到瀏覽器處理完其他工作,再回來task queue把裡面的東西拿出來執行
JS處理順序: Task -> microtask(Promise) -> macrotask(setTimeout、setInterval)
CSS
!important > inline style > id > class = 偽元素 > 型態選擇器 = 偽類 > 通用(*)
水平垂直置中的不同方法
1. display: flex; justify-content: center; align-items:center
2. display: fkex; margin: auto;
map()和forEach()的差別
兩者皆會遍歷整個陣列,但map會回傳新陣列,forEach不會。
React生命週期
1. mounting: React首次渲染元件,並把渲染的節點加入DOM時
2. updating: 在mounting之後,若元件的state、props有變化,就會觸發updating重新渲染,並透過Virtual DOM比對渲染前後的不同,再更新實際的DOM上
3. unmounting: 元件從DOM被移除時
如何使用React
ueseEffect的return function
什麼是Virtual
Virtual DOM是透過JS物件的形式儲存在記憶體中模擬真實DOM的方法,比較渲染前後兩次Virtual DOM的差異,只更新發生變化的部分
React渲染列表加上key的原因
讓 React 知道元件對應到哪個item,可以幫助 React 判斷這個元件是否有重製的必要,減少不必要的效能浪費。
另外不能使用index當作key的原因是若陣列的順序、數量有變動,index也會跟著變動,進而導致React誤會所有元素都被更改,把所有元素重繪導致效能浪費
useCallback
useCallback記function本身
useMemo記function運算後回傳的值
CORS是什麼以及解決方法
CORS跨域請求是為了解決瀏覽器同源政策帶來的問題,同源政策主要是限制非同源請求,避免惡意網站能夠輕易存取其他網頁的重要資料,EX: 網路銀行的帳號、密碼
但由於實際開發經常遇到需要請求非同源的資源,此時便透過發請CORS跨域請求,透過後端設定的HTTP標頭,發起簡單請求如GET、POST,或是預檢請求DELETE
面試建議
需注意似乎是因為公司是博弈網頁代工的關係,很看重應徵者是否把這個職位視為首選,會依照你應徵問卷的回答判斷你選擇這個職位的機率,把他們覺得機率低的直接排除掉,如果很想要這份工作的話建議客製化一下。
原本依照面試體感是五星,但面試官遲到扣一星,無聲卡再扣一星。
另外公司網站不太OK, Y軸都跑出來了,作為一個前端看到很想衝進公司幫他們修改,好歹縮一下width、用個overflow-y: hidden擋一下RRR