面試問答
var let const 是什麼
- var 是原本宣...
經歷背景:
公司主動聯繫,目前兩年多經驗,期望年薪 90~100
詢問 HR 整體面試流程:
初試:自我介紹、
online coding 以及技術問答、公司介紹,大約 1~1.5 小時
複試:技術經理,主要會聊履歷與經歷的部分,大約 1 小時
三面:CTO 面試,主要會聊履歷與經歷的部分,大約 1 小時
目前才剛初試,如果有進入後續面試會補在留言區。
初試下來感覺很不錯,能與面試官討論技術,面試官也很樂意分享,並會給予這次面試的回饋,讚。
實際初試流程為:自我介紹 -> JS 基礎技術問答 -> React 技術問答 -> 公司團隊介紹 -> Q&A
以下我講的回答可能有誤,保持懷疑的態度,自行上網查証。
面試問答
var let const 是什麼
- var 是原本宣告變數的語法,let 和 const 是 ES6 才出來的語法
- var 會 hoisting,let 和 const 雖然也會 hoisting 但會先報錯
- var 是 function scope,let 和 const 是 block scope
什麼是 code by reference 與 code by value
code by reference 是在記憶體存指向位址,用來存取物件
code by value 是在記憶體存值,簡單說除了物件外都是這個(但實際有些值是存位址,但這就要深入研究了)
什麼是閉包
就是一個 function 回傳一個 function,利用函式作用域(function scope),將值存在 function 內部,透過回傳的 function 去操作或讀取值,設計不好的話,容易造成內存泄露。
DOM 和 BOM 是什麼
DOM 是 HTML 生成的物件結構
BOM 則是瀏覽器提供的 API,例如: document.getElementById
什麼是淺複製,什麼是深複製
淺複製是只複製到淺層,嵌套的物件會是存值,例如: Object.assign()
深複製是是連嵌套的物件都複製,例如: JSON.parse(JSON.stringify())
class component 和 function component 是什麼
class component 是舊版的寫法,目前還是可以繼續寫,生命週期比較細,想復用邏輯需要使用 HOC 的方式實作
function component 是新版的寫法,可以使用 hook 復用邏輯,目前大多數情況下都可以使用這個
JavaScript 的 GC 是什麼
每個宣告的函式或變數都會存在記憶體中,當變數或函式使用完後,在經過一定的時間後,如果未被使用,或被賦值 undefined,就會被回收記憶體
有使用過 SEO 的經歷嗎
理解 SSR 處理,處理 meta 、 html tag 和給爬蟲看的 json
面試建議
公司團隊很多,有 POS、電商前後台、客製化組、數據分析組、智慧倉儲組,每個團隊都有兩至三個前端,有時候會需要互相支援。
公司每週跑 Scrum,每週一會跑 Planning,下午 17:00 跑立會。
QA 和 UI/UX 是團隊共用
初試給我的感覺很棒,面試官也很有耐心的說明,值得嘗試。