ตัวดำเนินการ in
ตัวดำเนินการ in ตรวจสอบว่าวัตถุหรืออาร์เรย์มีคุณสมบัติ
หรือไม่ และส่งคืน
true หรือ false
ไวยากรณ์
'คุณสมบัติ' in วัตถุ;
ตัวอย่าง
มาดูกันว่าตัวดำเนินการ in ทำงานอย่างไร:
let obj = {
name: 'Nick',
age: 23,
};
console.log('name' in obj); // true
console.log('age' in obj); // true
console.log('test' in obj); // false
ตัวอย่าง
มาดูกันว่าเราจะใช้ตัวดำเนินการ
in เพื่อตรวจสอบคุณสมบัติใน
อาร์เรย์ได้อย่างไร:
let arr = ['เขียว', 'แดง', 'น้ำเงิน', 'ชมพู']
console.log(0 in arr); // true, มีองค์ประกอบที่มีดัชนีนั้น
console.log(4 in arr); // false, ไม่มีองค์ประกอบที่มีดัชนีนั้น
console.log('four' in arr); // false, ต้องการดัชนี ไม่ใช่ค่าขององค์ประกอบ
console.log('length' in arr); // true, อาร์เรย์มีคุณสมบัตินี้
ตัวอย่าง
บ่อยครั้ง แทนที่จะใช้ in ก็จะตรวจสอบว่าคุณสมบัตินั้น
ในบริบทเชิงตรรกะเป็น true:
let obj = {
name: 'John',
height: '177',
};
if ('name' in obj) {} // การตรวจสอบในเงื่อนไขด้วย in
if (obj.name) {} // แต่บ่อยครั้งที่เขียนแบบนี้
สามารถใช้ได้ทั้งสองวิธี แต่ต้อง
จำไว้เสมอว่าสตริงว่าง, 0,
null, NaN และ undefined ในบริบทเชิงตรรกะ
คือ false ดังนั้น หากคุณสมบัติสามารถ
มีค่าดังกล่าวได้ - ควรใช้ in