เนื่องจาก JavaScript เป็นภาษาเล็ก ๆ แต่มีความซับซ้อนอย่างไม่น่าเชื่อคุณจึงควรถามคำถามที่ค่อนข้างพื้นฐานและดูว่าภาษานั้นดีจริงหรือไม่ตามคำตอบของพวกเขา ตัวอย่างเช่นคำถามแรกมาตรฐานของฉันในการประเมินส่วนที่เหลือของการสัมภาษณ์คือ:
ใน JavaScript อะไรคือความแตกต่างระหว่างvar x = 1และx = 1? ตอบโดยละเอียดมากหรือน้อยตามที่คุณสบายใจ
โปรแกรมเมอร์มือใหม่ JS อาจมีคำตอบพื้นฐานเกี่ยวกับคนในพื้นที่กับคนทั่วโลก พวก JS ระดับกลางควรมีคำตอบนั้นอย่างแน่นอนและน่าจะกล่าวถึงขอบเขตระดับฟังก์ชัน ใครก็ตามที่เรียกตัวเองว่าโปรแกรมเมอร์ JS "ขั้นสูง" ควรเตรียมพร้อมที่จะพูดคุยเกี่ยวกับคนในท้องถิ่นโลกโดยนัยwindowวัตถุขอบเขตการทำงานการยกประกาศและโซ่ขอบเขต นอกจากนี้ฉันชอบที่จะได้ยินเกี่ยวกับ[[DontDelete]]ชูความสำคัญ (พารามิเตอร์ VS varVS function) undefinedและ
คำถามที่ดีอีกข้อหนึ่งคือขอให้พวกเขาเขียนsum()ฟังก์ชันที่รับอาร์กิวเมนต์จำนวนเท่าใดก็ได้และส่งกลับผลรวม จากนั้นขอให้พวกเขาใช้ฟังก์ชันนั้น (โดยไม่ต้องแก้ไข) เพื่อรวมค่าทั้งหมดในอาร์เรย์ ควรเขียนฟังก์ชันที่มีลักษณะดังนี้:
function sum() {
var i, l, result = 0;
for (i = 0, l = arguments.length; i < l; i++) {
result += arguments[i];
}
return result;
}
sum(1,2,3); // 6
และควรเรียกใช้ในอาร์เรย์ของคุณเช่นนี้ (บริบทสำหรับapplyอะไรก็ได้ฉันมักจะใช้nullในกรณีนั้น):
var data = [1,2,3];
sum.apply(null, data); // 6
หากพวกเขามีคำตอบเหล่านั้นพวกเขาอาจจะรู้จัก JavaScript จากนั้นคุณควรถามพวกเขาเกี่ยวกับสิ่งที่ไม่ใช่ JS เช่นการทดสอบเวิร์กโฟลว์การควบคุมเวอร์ชัน ฯลฯ เพื่อดูว่าพวกเขาเป็นโปรแกรมเมอร์ที่ดีหรือไม่