ใน JavaScript ตัวดำเนินการ == และ == สามารถใช้เพื่อตรวจสอบว่าค่าทั้งสองมีค่าเท่ากันหรือไม่ ความแตกต่างคือถ้าค่าทั้งสองที่ตัดสินไม่สอดคล้องกันตัวดำเนินการ === จะกลับมาเป็นเท็จโดยตรงในขณะที่ตัวดำเนินการ == จะทำการตัดสินหลังจากการแปลงประเภท กฎการตัดสินโดยละเอียดมีดังนี้:
=== กฎสำหรับการตัดสินผู้ประกอบการ
1. หากประเภทของค่าทั้งสองไม่สอดคล้องกันให้ส่งคืนเท็จ
2. หากค่าทั้งสองมีประเภทเดียวกันและค่าเท่ากันให้ส่งคืนจริง NAN เป็นกรณีพิเศษ NAN === NAN กลับมาเป็นเท็จ
3. หากค่าทั้งสองเป็นประเภทวัตถุเช่นเดียวกับ Java เว้นแต่การอ้างอิงจะสอดคล้องกัน (จุดอ้างอิงไปยังที่อยู่วัตถุเดียวกัน) แม้ว่าเนื้อหาในวัตถุจะเหมือนกันทั้งสองค่าจะถูกพิจารณาว่าไม่สอดคล้องกันและการดำเนินการที่สอดคล้องกันจะกลับเท็จ ตัวอย่างเช่นสร้างสองอาร์เรย์ใหม่ที่มีเนื้อหาเดียวกันทั้งหมดจากนั้นดำเนินการ === การดำเนินการกับพวกเขาและส่งคืนผลลัพธ์เป็นเท็จ - แม้ว่าเนื้อหาของพวกเขาจะเหมือนกันทุกประการ แต่พวกเขายังคงอยู่ในสองวัตถุที่แตกต่างกัน
4.0 ===-0 ส่งคืนจริง
== กฎสำหรับการตัดสินของผู้ประกอบการ
ตัวดำเนินการ == จะพิมพ์ค่าแล้วเปรียบเทียบ การแปลงประเภทเป็นไปตามหลักการต่อไปนี้: ก่อนจะแปลงเป็นหมายเลขจากนั้นเปรียบเทียบมันก่อนและแปลงเป็นสตริงก่อนแล้วจึงเปรียบเทียบ กฎการตัดสินเฉพาะมีดังนี้:
1. หากสองประเภทค่าเหมือนกันให้กลับมาหลังจากดำเนินการ === การดำเนินการ
2.Null == ไม่ได้กำหนดเป็นจริง
3. จริงจะถูกแปลงเป็น 1 และเปรียบเทียบเท็จจะถูกแปลงเป็น 0 และเปรียบเทียบ
4. หากหนึ่งในค่าเป็นวัตถุให้แปลงเป็นจำนวนแล้วเปรียบเทียบมันยกเว้นวัตถุวันที่
5. หากหนึ่งในค่าเป็นวัตถุวันที่ให้แปลงเป็นสตริงแล้วเปรียบเทียบ
การทดลอง
การคัดลอกรหัสมีดังนี้:
console.log ("3" === 3); // false
console.log (nan === nan); // false
var a = {x: 1, y: 2};
var b = {x: 1, y: 2};
var c = a;
console.log (a === b); // false
console.log (a === c); // true
console.log (0 === -0); // true
console.log ("3" == 3); // true
console.log (null == undefined); // true
console.log (true == 1); // true
console.log (true == 9); // false
console.log ([9] == 9); // true
console.log ([9] == "9"); // true
var d = วันที่ใหม่ ();
var s = d.toString ();
var n = d.valueof ();
console.log (d == s); // true
console.log (d == n); // false