[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"learn-zh-TW-ray-js-guide":3},{"id":4,"title":5,"body":6,"category":277,"description":278,"extension":279,"featured":280,"image":281,"meta":282,"navigation":283,"path":284,"publishedAt":285,"readingMinutes":286,"seo":287,"stem":288,"updatedAt":285,"__hash__":289},"learn\u002Flearn\u002Fray-js-guide.md","準備 JavaScript 面試？RayJS Gem 出題練習完整指南",{"type":7,"value":8,"toc":261},"minimark",[9,14,18,21,28,32,35,54,75,94,108,122,137,143,147,150,153,156,159,163,166,169,172,176,179,182,185,213,216,219,224,227,231,234,238,241,245],[10,11,13],"h2",{"id":12},"面試前最怕的不是沒題目是練完還是不確定","面試前最怕的不是沒題目，是練完還是不確定",[15,16,17],"p",{},"JavaScript 面試題網路上一堆，但多數人的問題不是找不到題目，而是答完了不知道自己哪裡對、哪裡錯、為什麼會是這樣。",[15,19,20],{},"RayJS 扮演的角色是「友善但嚴格的資深面試官」。它不用冷門邊界情境考倒你，重點放在驗證你真的理解——答完它會告訴你對在哪、錯在哪、背後的原理是什麼。",[22,23,25],"prose-button",{"gem":24},"ray-js",[15,26,27],{},"立即試用 RayJS",[10,29,31],{"id":30},"涵蓋哪些-javascript-主題","涵蓋哪些 JavaScript 主題？",[15,33,34],{},"JavaScript 面試常考的觀念，RayJS 幾乎全部覆蓋：",[15,36,37,41,42,46,47,46,50,53],{},[38,39,40],"strong",{},"變數與作用域","：",[43,44,45],"code",{},"var"," \u002F ",[43,48,49],{},"let",[43,51,52],{},"const"," 的差異是什麼、Hoisting 怎麼運作、暫時性死區（TDZ）是什麼概念、閉包（Closure）是什麼、在實際開發中怎麼用。",[15,55,56,41,59,62,63,66,67,70,71,74],{},[38,57,58],{},"型別與運算",[43,60,61],{},"=="," vs ",[43,64,65],{},"==="," 的差別、型別強制轉換（Type Coercion）的規則、",[43,68,69],{},"typeof"," 和 ",[43,72,73],{},"instanceof"," 怎麼用、物件和原始型別在比較時的行為。",[15,76,77,41,80,83,84,46,87,46,90,93],{},[38,78,79],{},"this 與函式",[43,81,82],{},"this"," 在不同情境下指向哪裡、箭頭函式和一般函式的差別在哪、",[43,85,86],{},"call",[43,88,89],{},"apply",[43,91,92],{},"bind"," 分別是做什麼的、IIFE 是什麼、怎麼用。",[15,95,96,99,100,103,104,107],{},[38,97,98],{},"非同步","：Event Loop 怎麼運作、Call Stack 是什麼、Callback 地獄是什麼問題、Promise 怎麼用、",[43,101,102],{},"async \u002F await"," 怎麼用、",[43,105,106],{},"setTimeout(fn, 0)"," 為什麼不是立刻執行。",[15,109,110,113,114,117,118,121],{},[38,111,112],{},"原型與繼承","：原型鏈（Prototype Chain）的概念、",[43,115,116],{},"Object.create"," 怎麼用、ES6 ",[43,119,120],{},"class"," 語法背後的機制是什麼。",[15,123,124,41,127,46,130,46,133,136],{},[38,125,126],{},"陣列與物件操作",[43,128,129],{},"map",[43,131,132],{},"filter",[43,134,135],{},"reduce"," 的差別與使用時機、淺拷貝 vs 深拷貝、解構賦值、展開運算子。",[15,138,139,142],{},[38,140,141],{},"現代語法","：ES6+ 新功能有哪些、模組系統（ESM vs CJS）的差別、Optional Chaining、Nullish Coalescing 怎麼用。",[10,144,146],{"id":145},"出題的方式有哪幾種","出題的方式有哪幾種？",[15,148,149],{},"「預測輸出題」是 RayJS 最常出的類型，也是最有效的觀念驗證方式。它給你一段程式碼，問你執行結果是什麼。這種題目沒辦法靠背答案，要真的理解執行流程才能答對。",[15,151,152],{},"「觀念解釋題」是開放式問題，像「閉包是什麼？什麼情況下會用到？」這類，考你能不能說清楚，而不只是有印象。",[15,154,155],{},"「程式碼除錯題」是給你一段有問題的程式碼，請你找出 bug 在哪。",[15,157,158],{},"難度分三個等級：🟢 基礎 \u002F 🟡 進階 \u002F 🔴 挑戰，讓你知道每個觀念在面試中的分量。",[10,160,162],{"id":161},"它怎麼批改","它怎麼批改？",[15,164,165],{},"答對的話它會說對在哪，幫你強化正確認知。",[15,167,168],{},"答錯或答不完整，它不會直接否定，而是說「很接近了，這裡有個小地方需要留意——」然後帶你走一遍正確的思路。這種方式不會打擊你的信心，但也確實讓你知道哪裡沒弄清楚。",[15,170,171],{},"每道題在批改前，RayJS 都會先自己用 MDN 或 ECMAScript spec 驗證程式碼執行正確性，確保解析不會給你錯誤的資訊。",[10,173,175],{"id":174},"怎麼開始練習","怎麼開始練習？",[15,177,178],{},"告訴它你現在的目標：「我要準備 Junior 前端工程師面試，從基礎觀念出題，一次給我三題。」它就會開始出題，你作答之後它批改，然後繼續下一輪。",[15,180,181],{},"也可以指定主題：「我最弱的是非同步相關的題目，集中出這個方向。」",[15,183,184],{},"如果你想直接問觀念，不一定要走出題批改的流程，直接問也行：",[186,187,188,192,198,207,210],"ul",{},[189,190,191],"li",{},"「閉包是什麼？可以舉個實際的例子嗎？」",[189,193,194,195,197],{},"「Event Loop 怎麼運作？為什麼 ",[43,196,106],{}," 不是立刻執行？」",[189,199,200,201,203,204,206],{},"「",[43,202,45],{}," 的 Hoisting 跟 ",[43,205,49],{}," 的暫時性死區有什麼不一樣？」",[189,208,209],{},"「這段程式碼的輸出是什麼？為什麼？」（貼上程式碼）",[189,211,212],{},"「Promise 跟 async\u002Fawait 在錯誤處理上差在哪裡？」",[15,214,215],{},"把底子打穩比把題目背完重要得多，先把核心觀念搞清楚，再去上戰場。",[10,217,218],{"id":218},"常見問題",[220,221,223],"h3",{"id":222},"rayjs-適合什麼程度的人","RayJS 適合什麼程度的人？",[15,225,226],{},"從剛學 JavaScript 的新手到準備 Senior 面試的人都適用。告訴它你的目標程度，它會調整出題難度，從基礎的變數作用域到進階的 Event Loop 和原型鏈都涵蓋。",[220,228,230],{"id":229},"它出的題目答案準確嗎","它出的題目答案準確嗎？",[15,232,233],{},"每道題在批改前，RayJS 都會先用 MDN 或 ECMAScript spec 驗證程式碼執行正確性，確保解析不會給你錯誤的資訊。",[220,235,237],{"id":236},"可以只問觀念不做題嗎","可以只問觀念不做題嗎？",[15,239,240],{},"可以。不一定要走出題批改的流程，直接問觀念也行，例如「閉包是什麼？」「Event Loop 怎麼運作？」它會用清楚的方式解釋。",[10,242,244],{"id":243},"相關-gem-推薦","相關 Gem 推薦",[186,246,247,255],{},[189,248,249,254],{},[250,251,253],"a",{"href":252},"\u002Flearn\u002Fray-vault-guide","RayVault AI 資安攻防挑戰"," — 同樣適合開發者，玩玩 Prompt Injection 是怎麼運作的",[189,256,257],{},[250,258,260],{"href":259},"\u002F","查看所有精選 Gems →",{"title":262,"searchDepth":263,"depth":263,"links":264},"",2,[265,266,267,268,269,270,276],{"id":12,"depth":263,"text":13},{"id":30,"depth":263,"text":31},{"id":145,"depth":263,"text":146},{"id":161,"depth":263,"text":162},{"id":174,"depth":263,"text":175},{"id":218,"depth":263,"text":218,"children":271},[272,274,275],{"id":222,"depth":273,"text":223},3,{"id":229,"depth":273,"text":230},{"id":236,"depth":273,"text":237},{"id":243,"depth":263,"text":244},"Gem 教學","RayJS 是專為前端工程師設計的 JS 面試陪練 Gem，出題、批改、觀念解析一條龍，從閉包到非同步全面覆蓋，幫你把底子打穩再上戰場。","md",false,null,{},true,"\u002Flearn\u002Fray-js-guide","2026-03-28",7,{"title":5,"description":278},"learn\u002Fray-js-guide","mjQ5JgkY390-cMkHluiJ_Bmakbw1mFUycXihcLGhBtc",1775702203975]