面試問答
你知道瀏覽器是怎麼渲染頁面出來的嗎?這中間發生了什麼事?
正確答案是
瀏覽器...
博弈公司
會先由人資跟你進行電話訪談,之後給主管審核過後再約正式的面試
面試會問你要視訊還是到場面試,我是選擇視訊面
試
視訊由一位資深前端工程師面
一開始要你做自我介紹,會針對你的自我介紹問一些簡單的問題
之後會進行一連串的前端技術問答(很深的)
最後介紹他們公司的業務性質
面試問答
你知道瀏覽器是怎麼渲染頁面出來的嗎?這中間發生了什麼事?
正確答案是
瀏覽器拿到原始碼掛載DOM、之後是CSS、JS、圖片
從使用者點擊網頁到跳轉進入頁面這中間發生了什麼事
這個問題我回答得不是很好
主要他是想知道你了解中間會碰到什麼服務
建議可以自行Google
對Vue2的生命週期理解
BeforeCreated、Created、BeforeMounted、Mounted、BeforeUpdate、Update、BeforeDestoryed、Destoryed
有沒有碰到不同瀏覽器產生的畫面不同的問題?要怎麼解決?
我是回答針對瀏覽器判斷寫不同CSS
但答案好像是要用AutoPrefix之類的套件去讓樣式在不同瀏覽器可以呈現一樣的效果
如果你進行了數據更新,但畫面沒有跟著更新,而Console.log打印出來的是有的話,你要怎麼解決?
我是回答用重新附值的方式讓畫面強制更新
但他說正確答案是用Set方式或this.$nextTick()來解決
對於父子元件的數據傳遞理解
父元件用:傳遞下去
子元件用emit傳遞上去
為什麼v-for要給key?有沒有碰過在非v-for裡也要給key的情況?
我回答得不是很好
正確答案是Vue會復用舊元件,所以給key才能讓Vue知道他要操作的哪個元件
像是在很多的v-if或v-show裡面也要給key
computed和一般的methods最大的差別在哪
我是回答前者需要回傳值後者不一定需要
但他想要聽的正確答案是computed會暫存舊的數值,methods不會
如果用watch操作沒有正確的更新到頁面的值,是什麼原因?
通常是監聽物件會產生的情況,因為沒有深層監聽
所以會去了解是物件裡面的哪個值沒有被深層監聽最後再獨立出來
scoped和非scoped的差別在哪?
前者只會影響到該元件的樣式,後者是全域的
如果引入了外部套件,想要複寫它的樣式,你要怎麼做?
我的回答是看它實際產生出來的class是什麼名稱,再把它拿出來做更改,如果還是改不了就用!important
但他說正確答案是用v-deep方法
有命名的Slot詳細說明
這個我直接說不常使用
他說正確答案是會有Header、Body、Footer那些不同的slot的對應部分
這個可能也去自行google才比較好
網頁在啟動時會碰到什麼服務
我直接說我不是負責打包建構的人員
如果想回答得好建議自行google
對於Router的理解,怎麼使用的?
我回答依照View底下的vue檔案名稱進行Router的區分,如果有子網頁就再建一個資料夾往下遞迴
有沒有使用過路由守衛?就是在Router跳轉之前對他進行的操作?主要用來做什麼?
我回答說避免使用者自行輸入網址跳轉到非允許的頁面裡,所以會在裡面做判斷
面試建議
老實說被問到一堆技術問題我還滿慌的
完全沒有想過會被問到這麼深,所以也沒有什麼太多準備
建議要面試前可以把這些前端技術(包然Html、JS、CSS、Vue)都好好的復習和準備
這樣才能應付面試官的任何問題
另外這間公司只有三位前端工程師(包含要應徵的)
前端需求比較少,所以偶爾會去做一些跨到後端的小需求(使用php)
然後一個月大約一兩次的會有類似on-call的需求
可能晚上會有什麼小功能需要修改,看當時有誰在(?),就幫忙改移下
(我只是復述原話,我也不知道他到底在說什麼)
------
反正就一間博弈公司來說,我覺得可能也學不到太多東西
就看自己能不能接受