ตรรกะหรือ (||)
var result = true || เท็จ;
คล้ายกับตรรกะและการดำเนินงานหากมีตัวถูกดำเนินการที่ไม่ใช่บูลีนตรรกะหรือไม่จำเป็นต้องส่งคืนบูลีน ในเวลานี้มันเป็นไปตามกฎต่อไปนี้:
□หากตัวถูกดำเนินการแรกเป็นวัตถุตัวถูกดำเนินการแรกจะถูกส่งคืน
□หากตัวถูกดำเนินการแรกถูกประเมินเป็นเท็จตัวถูกดำเนินการที่สองจะถูกส่งคืน
□หากตัวถูกดำเนินการทั้งสองเป็นวัตถุตัวถูกดำเนินการแรกจะถูกส่งคืน
□หากตัวถูกดำเนินการทั้งสองเป็นโมฆะให้ส่งคืนโมฆะ
□หากทั้งคู่ไม่ได้กำหนดให้กลับมาที่ไม่ได้กำหนด
□หากทั้งคู่เป็นน่านให้กลับมาน่าน
ความแตกต่างระหว่าง "===" และ "=="
ตัวดำเนินการความเท่าเทียมกัน (==)
ตัวดำเนินการที่เท่าเทียมกันจะแปลงค่าการดำเนินงานโดยปริยายและเปรียบเทียบ:
หากค่าการทำงานเป็นบูลีนมันจะถูกแปลงเป็นค่าตัวเลขก่อนการเปรียบเทียบ
หากค่าการทำงานหนึ่งเป็นสตริงและค่าการดำเนินการอื่นเป็นค่าตัวเลขสตริงจะถูกแปลงเป็นค่าตัวเลขผ่านฟังก์ชันตัวเลข ()
หากค่าการดำเนินการหนึ่งเป็นวัตถุและอื่น ๆ ไม่ได้เป็นดังนั้นวิธีการ valueof () ของวัตถุจะถูกเรียกและผลลัพธ์จะถูกเปรียบเทียบตามกฎก่อนหน้านี้
NULL และ Undefined มีค่าเท่ากัน
หากค่าการดำเนินงานเป็น NAN การเปรียบเทียบที่เท่ากันจะส่งกลับเท็จ
หากค่าการทำงานทั้งสองเป็นวัตถุให้เปรียบเทียบว่าพวกเขาชี้ไปที่วัตถุเดียวกันหรือไม่ หากตัวถูกดำเนินการทั้งสองชี้ไปที่วัตถุเดียวกันตัวดำเนินการที่เท่ากันจะส่งกลับจริงมิฉะนั้นจะส่งคืนเท็จ
มีการอธิบายต่อไปนี้แยกกัน:
มาพูดถึง === นี่ค่อนข้างง่าย กฎต่อไปนี้ใช้เพื่อพิจารณาว่าทั้งสองค่า === เท่ากัน:
1. หากประเภทต่างกันพวกเขาจะ [ไม่เท่ากัน]
2. ถ้าทั้งคู่เป็นค่าตัวเลขและมีค่าเท่ากันแล้ว [เท่ากับ]; (! ข้อยกเว้น) คือถ้าอย่างน้อยหนึ่งในนั้นคือน่านแล้ว [ไม่เท่ากัน] (เพื่อตรวจสอบว่าค่าเป็น NAN คุณสามารถใช้ ISNAN () เพื่อตัดสินได้เท่านั้น)
3. ถ้าทั้งคู่เป็นสตริงและตัวละครในแต่ละตำแหน่งจะเหมือนกันแล้ว [ความเท่าเทียม]; มิฉะนั้น [ไม่เท่ากัน]
4. ถ้าทั้งสองค่าเป็นจริงหรือทั้งสองอย่างนั้นเป็นเท็จแล้ว [เท่ากัน]
5. ถ้าค่าทั้งสองอ้างถึงวัตถุหรือฟังก์ชั่นเดียวกัน [ความเท่าเทียม]; มิฉะนั้น [ไม่เท่ากัน]
6. ถ้าค่าทั้งสองเป็นโมฆะหรือทั้งสองไม่ได้กำหนดแล้ว [เท่ากัน]
พูดคุยเกี่ยวกับ == ตามกฎต่อไปนี้:
1. หากประเภทค่าสองประเภทเหมือนกันให้ทำ === การเปรียบเทียบ
2. หากประเภทค่าทั้งสองนั้นแตกต่างกันพวกเขาอาจจะเท่ากัน การแปลงประเภทจะดำเนินการตามกฎต่อไปนี้แล้วเปรียบเทียบ:
. หากมีค่าว่างและอีกอันหนึ่งไม่ได้กำหนดไว้แล้ว [เท่ากัน]
ข. หากหนึ่งเป็นสตริงและอื่น ๆ เป็นค่าตัวเลขให้แปลงสตริงเป็นค่าตัวเลขแล้วเปรียบเทียบ
ค. หากค่าใดเป็นจริงให้แปลงเป็น 1 และเปรียบเทียบ; หากค่าใดเป็นเท็จให้แปลงเป็น 0 และเปรียบเทียบ
d. หากหนึ่งเป็นวัตถุและอีกอันหนึ่งเป็นตัวเลขหรือสตริงให้แปลงวัตถุเป็นค่าของประเภทฐานแล้วเปรียบเทียบ แปลงวัตถุเป็นประเภทพื้นฐานและใช้วิธี toString หรือ valueof คลาส JS Core ในตัวจะพยายามที่จะให้คุณค่าก่อนที่จะ toString; ข้อยกเว้นคือวันที่ซึ่งใช้การแปลง ToString วัตถุหลักที่ไม่ใช่ JS สมมติว่า (มันลำบากกว่านี้ฉันไม่เข้าใจมาก)
ก. ชุดค่าผสมอื่น ๆ คือ [ไม่เท่ากัน]
ค่านิพจน์ค่านิพจน์
null == undefinedTruetrue == 1true
"nan" == nanfalse $ null == 0false
false == 0truenan! = nantrue
ในระยะสั้น "==" ต้องการค่าที่เท่ากันเท่านั้น "===" ต้องการให้ค่าและประเภทเท่ากัน
ข้อมูลมาจากการเขียนโปรแกรมขั้นสูง JavaScript จัดเรียงและอัปเดตในภายหลัง