การแนะนำ:

เพิ่มพูนความรู้ 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 ขั้นสูงพร้อมคำตอบและตัวอย่างโค้ด

ติดตามฉันบนสื่อหากคุณชอบบทความ