Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ทำไมใน JavaScript “if ('0' ==false)” เท่ากับ false ในขณะที่ให้ค่าจริงในคำสั่ง “if (0)”


มาดูเงื่อนไขกันทีละอย่างกัน −

if(‘0’ == false)

เป็นไปตามกฎต่อไปนี้ -

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

The ==ทำการบีบบังคับ ซึ่งหมายความว่ามีการร้องขอการแปลงประเภทที่ชัดเจนเพื่อให้ตรงกับประเภทของตัวถูกดำเนินการสองตัว ด้านซ้าย '0' จะถูกแปลงเป็นตัวเลข 0 เมื่อเปรียบเทียบตัวเลขทั้งสอง และเนื่องจาก 0 เท่ากับ 0 ผลลัพธ์จึงเป็นจริง ในกรณีนี้ วิธีนี้ใช้ไม่ได้ผลเนื่องจากไม่ได้บอกเป็นนัยเกี่ยวกับลักษณะที่แท้จริง/เท็จของสตริง '0' เนื่องจากถูกบังคับก่อนที่จะเปรียบเทียบ

ถ้า(0)

ตรวจสอบสตริงว่าเป็นค่าว่างหรือว่าง ไม่ใช่ว่าเป็นศูนย์หรือไม่ โปรดจำไว้เสมอว่าสตริงที่ไม่ว่างนั้นเป็นความจริง ไม่มีการบังคับแบบใดในที่นี้ เนื่องจากสตริงสามารถประเมินได้ว่าเป็นจริงหรือเท็จด้วยข้อดีของตนเอง