1. บทบาทของ JavaScript "=="
1. เมื่อเนื้อหาของ == ทั้งสองด้านเป็นสตริงแล้วเปรียบเทียบว่าเนื้อหาของสตริงมีค่าเท่ากันหรือไม่
2. เมื่อเนื้อหาทั้งสองด้านของ == เป็นตัวเลขจากนั้นเปรียบเทียบว่าขนาดของตัวเลขเท่ากันหรือไม่
3. เมื่อเนื้อหาทั้งสองด้านของ == เป็นวัตถุหรือแอตทริบิวต์ฟังก์ชันของวัตถุให้เปรียบเทียบว่าที่อยู่หน่วยความจำมีค่าเท่ากันหรือไม่
2. ความแตกต่างระหว่าง == และ ===
== ใช้สำหรับการเปรียบเทียบทั่วไป === ใช้สำหรับการเปรียบเทียบอย่างเข้มงวด == คุณสามารถแปลงชนิดข้อมูลในระหว่างการเปรียบเทียบ === การเปรียบเทียบที่เข้มงวดและส่งคืน flase ตราบใดที่ประเภทไม่ตรงกัน
ยกตัวอย่าง:
<script type = "text/javascript"> การแจ้งเตือน ("/"/"== ผลลัพธ์ที่แท้จริงคือ:"+("" == true)); การแจ้งเตือน ("/"/"=== ผลลัพธ์ที่แท้จริงคือ:"+("" == จริง)); "+(" "==);"1" == ประเภทจริงนั้นแตกต่างกัน "==" การแปลงประเภทจะดำเนินการก่อนและจริงเป็น 1 ถูกแปลงนั่นคือ "1" == 1; ในเวลานี้ประเภทยังคงแตกต่างกันดำเนินการแปลงประเภทต่อไปและ "1" ถูกแปลงนั่นคือ 1 == 1; ในเวลานี้ "==" ประเภทของทั้งสองด้านของซ้ายและขวาเป็นตัวเลขซึ่งค่อนข้างประสบความสำเร็จ!
"1" === จริงด้านซ้ายคือประเภทอักขระด้านขวาคือประเภทบูลด้านซ้ายและด้านขวาแตกต่างกันผลลัพธ์เป็นเท็จ
"1" === 1 ด้านซ้ายเป็นประเภทตัวละครด้านขวาเป็นประเภทตัวเลข int และด้านซ้ายและขวาแตกต่างกันและผลลัพธ์เป็นเท็จ
ผลการทำงาน:
สรุป:
ความแตกต่างระหว่าง == และ ==: "==" เฉพาะค่าเท่านั้นที่จะต้องเท่ากัน; "===" ค่าและประเภทจะต้องเท่ากัน
ให้ฉันอธิบายรายละเอียดความแตกต่างระหว่างสัญญาณที่เท่าเทียมกันสามสัญญาณและสัญญาณเท่ากันสองสัญญาณในจาวาสคริปต์
== ความเท่าเทียมกันเทียบเท่า === ตัวตนคือความเท่าเทียมกัน
== เมื่อทั้งสองฝ่ายมีค่าประเภทต่าง ๆ ควรทำการแปลงพิมพ์ก่อนแล้วจึงทำการเปรียบเทียบ
== ไม่มีการแปลงประเภทประเภทที่แตกต่างกันจะต้องแตกต่างกัน
มีการอธิบายต่อไปนี้แยกกัน:
มาพูดถึง === นี่ค่อนข้างง่าย
กฎต่อไปนี้ใช้เพื่อพิจารณาว่าทั้งสองค่า === เท่ากัน:
1. หากประเภทต่างกันพวกเขาจะ [ไม่เท่ากัน]
2. ถ้าทั้งคู่เป็นค่าตัวเลขและมีค่าเท่ากันแล้ว [เท่ากับ]; (! ข้อยกเว้น) คือถ้าอย่างน้อยหนึ่งในนั้นคือน่านแล้ว [ไม่เท่ากัน] (เพื่อตรวจสอบว่าค่าเป็น NAN คุณสามารถใช้ ISNAN () เพื่อตัดสินได้เท่านั้น)
3. ถ้าทั้งคู่เป็นสตริงและตัวละครในแต่ละตำแหน่งจะเหมือนกันแล้ว [ความเท่าเทียม]; มิฉะนั้น [ไม่เท่ากัน]
4. ถ้าทั้งสองค่าเป็นจริงหรือทั้งสองอย่างนั้นเป็นเท็จแล้ว [เท่ากัน]
5. ถ้าค่าทั้งสองอ้างถึงวัตถุหรือฟังก์ชั่นเดียวกัน [ความเท่าเทียม]; มิฉะนั้น [ไม่เท่ากัน]
6. ถ้าค่าทั้งสองเป็นโมฆะหรือทั้งสองไม่ได้กำหนดแล้ว [เท่ากัน]
พูดคุยเกี่ยวกับ == ตามกฎต่อไปนี้:
1. หากประเภทค่าสองประเภทเหมือนกันให้ทำ === การเปรียบเทียบ
2. หากประเภทค่าทั้งสองนั้นแตกต่างกันพวกเขาอาจจะเท่ากัน การแปลงประเภทจะดำเนินการตามกฎต่อไปนี้แล้วเปรียบเทียบ:
. หากมีค่าว่างและอีกอันหนึ่งไม่ได้กำหนดไว้แล้ว [เท่ากัน]
ข. หากหนึ่งเป็นสตริงและอื่น ๆ เป็นค่าตัวเลขให้แปลงสตริงเป็นค่าตัวเลขแล้วเปรียบเทียบ
ค. หากค่าใดเป็นจริงให้แปลงเป็น 1 และเปรียบเทียบ; หากค่าใดเป็นเท็จให้แปลงเป็น 0 และเปรียบเทียบ
d. หากหนึ่งเป็นวัตถุและอีกอันหนึ่งเป็นตัวเลขหรือสตริงให้แปลงวัตถุเป็นค่าของประเภทฐานแล้วเปรียบเทียบ แปลงวัตถุเป็นประเภทพื้นฐานและใช้วิธี toString หรือ valueof คลาส JS Core ในตัวจะพยายามที่จะให้คุณค่าก่อนที่จะ toString; ข้อยกเว้นคือวันที่ซึ่งใช้การแปลง ToString วัตถุหลักที่ไม่ใช่ JS
Lingshuo (ฉันไม่เข้าใจมาก)
ก. ชุดค่าผสมอื่น ๆ คือ [ไม่เท่ากัน]
ตัวอย่างเช่น:
"1" == จริง
หากประเภทนั้นแตกต่างกันจริงจะถูกแปลงเป็นค่า 1 ก่อนและตอนนี้มันจะกลายเป็น "1" == 1 จากนั้นแปลง "1" เป็น 1 และเปรียบเทียบ 1 == 1 ซึ่งเท่ากัน
= ผู้ดำเนินการที่ได้รับมอบหมาย
== เท่ากับ
=== อย่างเคร่งครัดเท่ากับ
ตัวอย่าง:
var a = 3;
var b = "3";
a == b ส่งคืนจริง
a === b ส่งคืนเท็จ
เพราะประเภทของ A และ B แตกต่างกัน
=== ใช้ในการตัดสินเปรียบเทียบอย่างเข้มงวด