面試前最怕的不是沒題目,是練完還是不確定
JavaScript 面試題網路上一堆,但多數人的問題不是找不到題目,而是答完了不知道自己哪裡對、哪裡錯、為什麼會是這樣。
RayJS 扮演的角色是「友善但嚴格的資深面試官」。它不用冷門邊界情境考倒你,重點放在驗證你真的理解——答完它會告訴你對在哪、錯在哪、背後的原理是什麼。
涵蓋哪些 JavaScript 主題?
JavaScript 面試常考的觀念,RayJS 幾乎全部覆蓋:
變數與作用域:var / let / const 的差異是什麼、Hoisting 怎麼運作、暫時性死區(TDZ)是什麼概念、閉包(Closure)是什麼、在實際開發中怎麼用。
型別與運算:== vs === 的差別、型別強制轉換(Type Coercion)的規則、typeof 和 instanceof 怎麼用、物件和原始型別在比較時的行為。
this 與函式:this 在不同情境下指向哪裡、箭頭函式和一般函式的差別在哪、call / apply / bind 分別是做什麼的、IIFE 是什麼、怎麼用。
非同步:Event Loop 怎麼運作、Call Stack 是什麼、Callback 地獄是什麼問題、Promise 怎麼用、async / await 怎麼用、setTimeout(fn, 0) 為什麼不是立刻執行。
原型與繼承:原型鏈(Prototype Chain)的概念、Object.create 怎麼用、ES6 class 語法背後的機制是什麼。
陣列與物件操作:map / filter / reduce 的差別與使用時機、淺拷貝 vs 深拷貝、解構賦值、展開運算子。
現代語法:ES6+ 新功能有哪些、模組系統(ESM vs CJS)的差別、Optional Chaining、Nullish Coalescing 怎麼用。
出題的方式有哪幾種?
「預測輸出題」是 RayJS 最常出的類型,也是最有效的觀念驗證方式。它給你一段程式碼,問你執行結果是什麼。這種題目沒辦法靠背答案,要真的理解執行流程才能答對。
「觀念解釋題」是開放式問題,像「閉包是什麼?什麼情況下會用到?」這類,考你能不能說清楚,而不只是有印象。
「程式碼除錯題」是給你一段有問題的程式碼,請你找出 bug 在哪。
難度分三個等級:🟢 基礎 / 🟡 進階 / 🔴 挑戰,讓你知道每個觀念在面試中的分量。
它怎麼批改?
答對的話它會說對在哪,幫你強化正確認知。
答錯或答不完整,它不會直接否定,而是說「很接近了,這裡有個小地方需要留意——」然後帶你走一遍正確的思路。這種方式不會打擊你的信心,但也確實讓你知道哪裡沒弄清楚。
每道題在批改前,RayJS 都會先自己用 MDN 或 ECMAScript spec 驗證程式碼執行正確性,確保解析不會給你錯誤的資訊。
怎麼開始練習?
告訴它你現在的目標:「我要準備 Junior 前端工程師面試,從基礎觀念出題,一次給我三題。」它就會開始出題,你作答之後它批改,然後繼續下一輪。
也可以指定主題:「我最弱的是非同步相關的題目,集中出這個方向。」
如果你想直接問觀念,不一定要走出題批改的流程,直接問也行:
- 「閉包是什麼?可以舉個實際的例子嗎?」
- 「Event Loop 怎麼運作?為什麼
setTimeout(fn, 0)不是立刻執行?」 - 「
var的 Hoisting 跟let的暫時性死區有什麼不一樣?」 - 「這段程式碼的輸出是什麼?為什麼?」(貼上程式碼)
- 「Promise 跟 async/await 在錯誤處理上差在哪裡?」
把底子打穩比把題目背完重要得多,先把核心觀念搞清楚,再去上戰場。
常見問題
RayJS 適合什麼程度的人?
從剛學 JavaScript 的新手到準備 Senior 面試的人都適用。告訴它你的目標程度,它會調整出題難度,從基礎的變數作用域到進階的 Event Loop 和原型鏈都涵蓋。
它出的題目答案準確嗎?
每道題在批改前,RayJS 都會先用 MDN 或 ECMAScript spec 驗證程式碼執行正確性,確保解析不會給你錯誤的資訊。
可以只問觀念不做題嗎?
可以。不一定要走出題批改的流程,直接問觀念也行,例如「閉包是什麼?」「Event Loop 怎麼運作?」它會用清楚的方式解釋。
相關 Gem 推薦
- RayVault AI 資安攻防挑戰 — 同樣適合開發者,玩玩 Prompt Injection 是怎麼運作的
- 查看所有精選 Gems →