การแนะนำ:
เพิ่มพูนความรู้ JavaScript ของคุณด้วยชุดคำถามสัมภาษณ์ขั้นสูง 10 ข้อที่คัดสรรมาโดยเฉพาะ เจาะลึกหัวข้อที่ซับซ้อน เช่น การกำหนดขอบเขตคำศัพท์ รูปแบบการออกแบบ การเขียนโปรแกรมแบบอะซิงโครนัส และอื่นๆ ค้นพบข้อมูลเชิงลึกอันล้ำค่าและเสริมความเข้าใจของคุณผ่านคำตอบที่ครอบคลุมและตัวอย่างโค้ดที่ลงมือปฏิบัติจริง ยกระดับการเตรียมตัวสำหรับการสัมภาษณ์ JavaScript และแสดงให้เห็นถึงความเชี่ยวชาญของคุณในภาษาแบบไดนามิกนี้ด้วยความมั่นใจ (ตอนที่ 4 ของซีรีส์)
ลองดู คำถามสัมภาษณ์ JavaScript ขั้นสูง 100 ข้อพร้อมคำตอบและตัวอย่างโค้ด (ตอนที่ 3) หากคุณยังไม่ได้อ่านบทความนั้น!
สารบัญ:
- JavaScript จัดการกับการดำเนินการแบบอะซิงโครนัสอย่างไร อธิบายบทบาทของการโทรกลับและยกตัวอย่าง
- จุดประสงค์ของตัวดำเนินการ “typeof” ใน JavaScript คืออะไร? ให้ตัวอย่าง.
- คุณจะแปลงสตริงเป็นตัวเลขใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
- จุดประสงค์ของเมธอด “slice()” ในอาร์เรย์ JavaScript คืออะไร ให้ตัวอย่าง.
- คุณจะตรวจสอบได้อย่างไรว่าวัตถุมีคุณสมบัติเฉพาะใน JavaScript หรือไม่? ให้ตัวอย่าง.
- คุณจะย้อนกลับสตริงใน JavaScript ได้อย่างไร? ให้ตัวอย่าง.
- คุณจะลบรายการที่ซ้ำกันออกจากอาร์เรย์ใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
- คุณจะตรวจสอบได้อย่างไรว่าตัวแปรเป็นอาร์เรย์ใน JavaScript หรือไม่ ให้ตัวอย่าง.
- คุณจะจัดเรียงอาร์เรย์ของวัตถุตามคุณสมบัติเฉพาะใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
- คุณจะลบองค์ประกอบออกจากอาร์เรย์ใน JavaScript ได้อย่างไร? ให้ตัวอย่าง.
31- JavaScript จัดการกับการดำเนินการแบบอะซิงโครนัสอย่างไร อธิบายบทบาทของการโทรกลับและยกตัวอย่าง
คำตอบ:
JavaScript ใช้การดำเนินการแบบอะซิงโครนัสเพื่อให้แน่ใจว่าพฤติกรรมไม่ปิดกั้น ใช้การโทรกลับเพื่อจัดการงานอะซิงโครนัส การโทรกลับเป็นฟังก์ชันที่ถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันอื่นและดำเนินการเมื่อมีเหตุการณ์หรือการกระทำเฉพาะเกิดขึ้น ต่อไปนี้คือตัวอย่างที่สาธิตการใช้การโทรกลับเพื่อจัดการการดึงข้อมูลแบบอะซิงโครนัส:
function fetchData(callback) { setTimeout(() => { const data = { name: 'John', age: 25 }; callback(data); }, 2000); } function displayData(data) { console.log(`Name: ${data.name}, Age: ${data.age}`); } fetchData(displayData);
ในตัวอย่างข้างต้น ฟังก์ชัน fetchData จำลองการดำเนินการแบบอะซิงโครนัสโดยใช้ setTimeout หลังจากการหน่วงเวลา 2 วินาที ระบบจะเรียกใช้ฟังก์ชันการโทรกลับ โดยส่งข้อมูลที่ดึงมาเป็นอาร์กิวเมนต์ ฟังก์ชัน displayData คือการเรียกกลับซึ่งรับข้อมูลและแสดงในคอนโซล
32- จุดประสงค์ของตัวดำเนินการ typeof ใน JavaScript คืออะไร? ให้ตัวอย่าง.
คำตอบ:
ตัวดำเนินการ typeof ใน JavaScript ใช้เพื่อกำหนดประเภทข้อมูลของค่าหรือนิพจน์ที่กำหนด ส่งคืนสตริงที่แสดงประเภทของตัวถูกดำเนินการ นี่คือตัวอย่าง:
const num = 10; const str = 'Hello'; const bool = true; const obj = { name: 'John' }; const arr = [1, 2, 3]; console.log(typeof num); // Output: "number" console.log(typeof str); // Output: "string" console.log(typeof bool); // Output: "boolean" console.log(typeof obj); // Output: "object" console.log(typeof arr); // Output: "object"
ในตัวอย่างข้างต้น ตัวดำเนินการ typeof ใช้เพื่อกำหนดประเภทของตัวแปรต่างๆ โดยจะส่งกลับประเภทตามลำดับเป็นสตริง เช่น ตัวเลข สตริง บูลีน หรืออ็อบเจ็กต์ โปรดทราบว่าอาร์เรย์ยังถือเป็นวัตถุใน JavaScript อีกด้วย
33- คุณจะแปลงสตริงเป็นตัวเลขใน JavaScript ได้อย่างไร? ให้ตัวอย่าง.
คำตอบ:
ใน JavaScript คุณสามารถแปลงสตริงให้เป็นตัวเลขได้โดยใช้ฟังก์ชัน parseInt() หรือ parseFloat() นี่คือตัวอย่าง:
const strNum = '42'; const num1 = parseInt(strNum); const num2 = parseFloat(strNum); console.log(num1); // Output: 42 console.log(num2); // Output: 42.0
ในตัวอย่างข้างต้น ฟังก์ชัน parseInt() จะแปลงสตริงเป็นจำนวนเต็ม ในขณะที่ฟังก์ชัน parseFloat() จะแปลงสตริงเป็นตัวเลขทศนิยม ตัวเลขที่ได้สามารถนำมาใช้สำหรับการดำเนินการทางคณิตศาสตร์หรือการปรับเปลี่ยนตัวเลขอื่นๆ ได้
34- จุดประสงค์ของเมธอด Slice() ในอาร์เรย์ JavaScript คืออะไร? ให้ตัวอย่าง.
คำตอบ:
วิธีการ Slice() ในอาร์เรย์ JavaScript ใช้เพื่อแยกส่วนของอาร์เรย์และส่งกลับอาร์เรย์ใหม่ที่มีองค์ประกอบที่เลือก ต้องใช้พารามิเตอร์ทางเลือกสองตัว: ดัชนีเริ่มต้นและดัชนีสิ้นสุด (ไม่รวม) นี่คือตัวอย่าง:
const numbers = [1, 2, 3, 4, 5]; const sliced = numbers.slice(1, 4); console.log(sliced); // Output: [2, 3, 4]
ในตัวอย่างข้างต้น มีการเรียกเมธอด Slice() บนอาร์เรย์ตัวเลข โดยระบุดัชนีเริ่มต้นเป็น 1 และดัชนีสิ้นสุดเป็น 4 (ไม่รวม) วิธีการแยกองค์ประกอบที่ดัชนี 1, 2 และ 3 สร้างอาร์เรย์ใหม่ [2, 3, 4]
35- คุณจะตรวจสอบได้อย่างไรว่าวัตถุมีคุณสมบัติเฉพาะใน JavaScript หรือไม่? ให้ตัวอย่าง.
คำตอบ:
คุณสามารถตรวจสอบว่าวัตถุมีคุณสมบัติเฉพาะใน JavaScript หรือไม่โดยใช้เมธอด hasOwnProperty() หรือตัวดำเนินการ in นี่คือตัวอย่างการใช้ทั้งสองวิธี:
const person = { name: 'John', age: 25 }; console.log(person.hasOwnProperty('name')); // Output: true console.log(person.hasOwnProperty('gender')); // Output: false console.log('name' in person); // Output: true console.log('gender' in person); // Output: false
ในตัวอย่างข้างต้น เมธอด hasOwnProperty() ใช้เพื่อตรวจสอบว่าวัตถุบุคคลมีคุณสมบัติ 'name' และ 'gender' หรือไม่ ส่งคืนค่าจริงสำหรับ 'ชื่อ' และค่าเท็จสำหรับ 'เพศ' ในทำนองเดียวกัน ตัวดำเนินการ in ถูกใช้เพื่อทำการตรวจสอบเดียวกัน
36- คุณจะย้อนกลับสตริงใน JavaScript ได้อย่างไร? ให้ตัวอย่าง.
คำตอบ:
หากต้องการกลับสตริงใน JavaScript คุณสามารถใช้วิธีการต่างๆ ได้ วิธีการทั่วไปวิธีหนึ่งคือการแปลงสตริงเป็นอาร์เรย์ ย้อนกลับอาร์เรย์ จากนั้นรวมองค์ประกอบที่กลับรายการกลับเข้าไปในสตริง นี่คือตัวอย่าง:
const str = 'Hello, World!'; const reversedStr = str.split('').reverse().join(''); console.log(reversedStr); // Output: '!dlroW ,olleH'
ในตัวอย่างข้างต้น สตริง 'Hello, World!' ถูกแปลงเป็นอาร์เรย์โดยใช้เมธอด split('') ซึ่งแยกสตริงออกเป็นอักขระแต่ละตัว จากนั้นจะใช้เมธอด Reverse() กับอาร์เรย์เพื่อกลับลำดับขององค์ประกอบ ในที่สุด วิธีการ join('') ใช้เพื่อรวมองค์ประกอบที่กลับรายการกลับเข้าไปในสตริง
37- คุณจะลบรายการที่ซ้ำกันออกจากอาร์เรย์ใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
คำตอบ:
หากต้องการลบรายการที่ซ้ำกันออกจากอาร์เรย์ใน JavaScript คุณสามารถใช้วัตถุ Set หรือเมธอด filter() ร่วมกับเมธอด indexOf() นี่คือตัวอย่างการใช้วัตถุ Set:
const numbers = [1, 2, 2, 3, 4, 4, 5]; const uniqueNumbers = [...new Set(numbers)]; console.log(uniqueNumbers); // Output: [1, 2, 3, 4, 5]
ในตัวอย่างข้างต้น Set object ใช้เพื่อสร้างชุดใหม่จากอาร์เรย์ตัวเลข เนื่องจากชุดอนุญาตเฉพาะค่าที่ไม่ซ้ำเท่านั้น รายการซ้ำใดๆ จะถูกลบออกโดยอัตโนมัติ จากนั้นตัวดำเนินการสเปรด ... จะใช้ในการแปลงชุดกลับเป็นอาร์เรย์ ส่งผลให้อาร์เรย์มีองค์ประกอบเฉพาะ
38- คุณจะตรวจสอบได้อย่างไรว่าตัวแปรเป็นอาร์เรย์ใน JavaScript? ให้ตัวอย่าง.
คำตอบ:
หากต้องการตรวจสอบว่าตัวแปรเป็นอาร์เรย์ใน JavaScript หรือไม่ คุณสามารถใช้เมธอด Array.isArray() ได้ นี่คือตัวอย่าง:
const arr = [1, 2, 3]; const notArr = 'Hello'; console.log(Array.isArray(arr)); // Output: true console.log(Array.isArray(notArr)); // Output: false
ในตัวอย่างข้างต้น เมธอด Array.isArray() ใช้เพื่อตรวจสอบว่าตัวแปร arr และ notArr เป็นอาร์เรย์หรือไม่ มันจะคืนค่าจริงสำหรับ arr และคืนค่าเท็จสำหรับ notArr
39- คุณจะเรียงลำดับอาร์เรย์ของวัตถุตามคุณสมบัติเฉพาะใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
คำตอบ:
หากต้องการจัดเรียงอาร์เรย์ของออบเจ็กต์ตามคุณสมบัติเฉพาะใน JavaScript คุณสามารถใช้เมธอด sort() และจัดเตรียมฟังก์ชันการเปรียบเทียบแบบกำหนดเองได้ ต่อไปนี้คือตัวอย่างการเรียงลำดับอาร์เรย์ของออบเจ็กต์ตามคุณสมบัติ 'age':
const persons = [ { name: 'John', age: 25 }, { name: 'Alice', age: 32 }, { name: 'Bob', age: 19 } ]; persons.sort((a, b) => a.age - b.age); console.log(persons);
ในตัวอย่างข้างต้น มีการเรียกเมธอด sort() บนอาร์เรย์ Persons โดยส่งฟังก์ชันการเปรียบเทียบเป็นอาร์กิวเมนต์ ฟังก์ชันการเปรียบเทียบจะเปรียบเทียบคุณสมบัติ 'อายุ' ของแต่ละออบเจ็กต์และส่งกลับค่าความแตกต่าง ซึ่งช่วยให้เมธอด sort() เรียงลำดับอาร์เรย์จากน้อยไปมากตามคุณสมบัติ 'age'
40- คุณจะลบองค์ประกอบออกจากอาร์เรย์ใน JavaScript ได้อย่างไร ให้ตัวอย่าง.
คำตอบ:
หากต้องการลบองค์ประกอบออกจากอาร์เรย์ใน JavaScript คุณสามารถใช้ splice() วิธีการหรือ filter() วิธีการ นี่คือตัวอย่างการใช้ splice():
const numbers = [1, 2, 3, 4, 5]; const indexToRemove = 2; numbers.splice(indexToRemove, 1); console.log(numbers); // Output: [1, 2, 4, 5]
ในตัวอย่างข้างต้น มีการเรียกเมธอด splice() บนอาร์เรย์ตัวเลข โดยระบุดัชนีขององค์ประกอบที่จะลบ (ในกรณีนี้คือ indexToRemove) และจำนวนองค์ประกอบที่จะลบ (ในกรณีนี้คือ 1) สิ่งนี้จะปรับเปลี่ยนอาร์เรย์ดั้งเดิมและลบองค์ประกอบที่ดัชนีที่ระบุ
สำรวจคำถามสัมภาษณ์ JavaScript ขั้นสูง 10 ข้อที่นอกเหนือไปจากพื้นฐาน ทดสอบความรู้ของผู้สมัครเกี่ยวกับแนวคิดที่ซับซ้อนและทักษะการแก้ปัญหา คำถามแต่ละข้อได้รับการจัดทำขึ้นอย่างพิถีพิถันและมีตัวอย่างโค้ดที่มีภาพประกอบเพื่อช่วยให้ผู้สมัครเข้าใจความซับซ้อนของหัวข้อที่มีอยู่ คำถามเหล่านี้ทำหน้าที่เป็นเครื่องมือที่ดีเยี่ยมในการประเมินความสามารถของผู้สมัครใน JavaScript ขั้นสูง และความสามารถในการนำความรู้ไปใช้ในสถานการณ์จริง
อ่านเพิ่มเติม: “ตอนที่ 5”
บทความก่อนหน้านี้:
ส่วนที่ 1–100 คำถามสัมภาษณ์ JavaScript ขั้นสูงพร้อมคำตอบและตัวอย่างโค้ด
ส่วนที่ 2–100 คำถามสัมภาษณ์ JavaScript ขั้นสูงพร้อมคำตอบและตัวอย่างโค้ด
ส่วนที่ 3–100 คำถามสัมภาษณ์ JavaScript ขั้นสูงพร้อมคำตอบและตัวอย่างโค้ด
ติดตามฉันบนสื่อหากคุณชอบบทความ