# 前端面試問題 不定期更新我遇過的前端面試題目。如果想補充題目的話,歡迎登入後編輯。 ## 增加 * 如何在設計師與前端工程師溝通的方式?前端工程師和後端工程師溝通的方式?使用的工具,溝通的模式?遇到的問題?怎麼解決? * 有在研究 UI/UX 嗎?經常會瀏覽怎樣的文章? * 有研究過設計準則嗎? * 最近有學習什麼新的技術或知識?可以分享一下心得?(前端知識更新的頻率) * 最後有沒有什麼想問想了解的? * 遇到程式問題都如何解決?解決的管道?有效性?效率? * 最近有對什麼還不會但有興趣學習的?不管是程式技術或是工具? * 第一個接觸和程式是什麼時候?後續培訓課程的內容有關什麼?1 ## 一般類 * 能請你簡單自我介紹嗎? * 為什麼想轉來寫程式/前端發展? * 有帶電腦嗎?能展示一下你的作品嗎? * 這個作品遇到什麼困難?怎麼解決的? * 過去經歷/學習前端上有遇到什麼挫折嗎?怎麼克服的? * 通常你的開發流程是什麼? * 你有嘗試去接案嗎 * 你有跟別人協同開發過嗎?例如跟其他人一起寫前端、或是跟後端、設計師配合的經驗? * 開發時有沒有什麼比較不能忍受或討厭的事情? * 期望的薪水是? * 最快能報到的日期是? * 你有什麼想問的嗎? ## CSS * 水平垂直置中的不同方法 * 說明下列 CSS selectors 的差別: - div .a.b - div .a .b - div section - div > section - div + section - div ~ section * CSS Specificity(通常會要你排優先順序) * box-sizing 的 content-box 和 border-box 差別,預設值為何? * id 跟 class 的差別?id 可以多於一個嗎? * :before 跟 :after 用途? * display: inline 跟 display: block 的差別 * 寫一個顏色漸變的動畫要用什麼 property * 知道什麼是 block formatting context (BFC) 嗎? * SASS 的 & 代表什麼? * 寫過什麼 CSS 動畫? ## JavaScript * 什麼是作用域 (scope)? * 什麼是 hoisting? * 什麼是 event loop? * function declaration vs function expression 差別? * By value vs by reference * 在不同情況下 this 指向對象會是什麼? * 什麼是原型鍊(prototype chain)? * 什麼是閉包(closure)?用途是什麼? * 非同步與同步操作混用時的輸出順序 * Promise 熟不熟 * 有用遞迴的方式寫過 async await 嗎? * var、let、const 的差別? * Array.forEach、Array.map、Array.filter、Array.reduce 的差別? * Promise 和 async await 要解決的是什麼問題? ## 框架/套件/工具類 * 為什麼選擇你現在用的這個 JavaScript 框架? * 用過其他 JavaScript 框架嗎?跟你現在用的框架差別在哪裡? * React key 的用途在哪裡? * 用過 React Hooks 嗎?它要解決什麼問題? * useEffect 傳入的第二個參數作用是什麼? * useEffect 回傳的 function 用途是什麼? * React 下層元件的 state 要給上層元件用的話要怎麼做? * 用過 Redux 嗎?它要解決什麼問題? * 有用過 Webpack 嗎? * 平常寫 code 有用 linter 嗎?用哪個? ## 網路類 * 知道哪些 HTTP methods? * GET & POST 兩者差異是? * PUT & PATCH 兩者差異是? * 有實作過登入功能嗎?可以說明你怎麼做的嗎? * Cookie 跟 session 的差異是? * Cookie、localStorage、sessionStorage 的差別? * 如何加快頁面載入速度? * 知道怎麼做 SEO 嗎? * 假如後端有很大一包資料(假設是高達 5 MB 的文字資料),需要花一些時間才能下載完,你身為前端工程師,能想出幾種方法去縮短使用者的等待時間? ## 設計方法/設計模式類 * 知道 OOP 嗎?什麼是 OOP? * 聽過 MVC 嗎?什麼是 MVC? * 聽過 functional programming 嗎? * 什麼是 immutable / immutability?