การเปรียบเทียบค่าและประเภทข้อมูลที่ไม่เท่ากันใน JavaScript
นอกจากตัวดำเนินการ != แล้ว ยังมี
ตัวดำเนินการ !== ที่คำนึงถึงประเภทข้อมูลด้วยเมื่อ
เปรียบเทียบ มาดูความแตกต่างระหว่าง
ทั้งสองด้วยตัวอย่างกัน
สมมติให้เปรียบเทียบตัวเลขสองตัวคือ 3
ด้วยตัวดำเนินการ != ตัวดำเนินการนี้จะเปรียบเทียบ
ค่าต่างๆ ว่ามัน "ไม่เท่ากัน" หรือไม่ เนื่องจาก
ค่าของเราเท่ากันพอดี ดังนั้น
เงื่อนไขจะเป็นเท็จ:
if (3 != 3) {
console.log('+++');
} else {
console.log('---'); // จะทำงานส่วนนี้
}
สมมติว่าตอนนี้ค่าหนึ่งในสองค่าของเราอยู่
ในเครื่องหมายคำพูด ในกรณีนี้ตัวดำเนินการ !=
ก็ยังคงถือว่ามันเท่ากัน (เพราะค่าตรงกัน
และประเภทข้อมูลไม่สำคัญสำหรับตัวดำเนินการนี้)
และเงื่อนไขก็จะเป็นเท็จอีกครั้ง:
if ('3' != 3) {
console.log('+++');
} else {
console.log('---'); // จะทำงานส่วนนี้
}
ตอนนี้ลองเปรียบเทียบตัวเลขสองตัว 3
ด้วยตัวดำเนินการ !== ดู มันก็จะ
ถือว่าพวกมันเท่ากันเช่นกัน:
if (3 !== 3) {
console.log('+++');
} else {
console.log('---'); // จะทำงานส่วนนี้
}
แต่ถ้าตอนนี้เรานำหนึ่งในเลขสามนั้นใส่ในเครื่องหมายคำพูด
ตัวดำเนินการ !== จะถือว่าเลขสามของเรา
ไม่เท่ากัน เนื่องจากแม้ว่าค่าของมันจะตรงกัน
แต่พวกมันมีประเภทข้อมูลต่างกัน:
if ('3' !== 3) {
console.log('+++'); // จะทำงานส่วนนี้
} else {
console.log('---');
}
โดยไม่ต้องรันโค้ด ให้กำหนดว่าอะไรจะถูกแสดงผล ในคอนโซล:
let test1 = '3';
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
โดยไม่ต้องรันโค้ด ให้กำหนดว่าอะไรจะถูกแสดงผล ในคอนโซล:
let test1 = '3';
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
โดยไม่ต้องรันโค้ด ให้กำหนดว่าอะไรจะถูกแสดงผล ในคอนโซล:
let test1 = 3;
let test2 = '3';
if (test1 != test2) {
console.log('+++');
} else {
console.log('---');
}
โดยไม่ต้องรันโค้ด ให้กำหนดว่าอะไรจะถูกแสดงผล ในคอนโซล:
let test1 = 3;
let test2 = '3';
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}
โดยไม่ต้องรันโค้ด ให้กำหนดว่าอะไรจะถูกแสดงผล ในคอนโซล:
let test1 = 3;
let test2 = 2;
if (test1 !== test2) {
console.log('+++');
} else {
console.log('---');
}