ค่าเท็จใน JavaScript
false 
- ศูนย์ของ
Numberประเภท0และยัง-0, 0.0และรูปแบบฐานสิบหก0x0( ขอบคุณ RBT ) 
BigIntประเภทศูนย์: 0nและ-0n(ใหม่ในปี 2020 ขอขอบคุณ GetMeARemoteJob ) 
"", ''และ``- สตริงของความยาว 0 
null 
undefined 
NaN 
document.all (ในเบราว์เซอร์ HTML เท่านั้น) 
 
"Falsey" ก็หมายความว่า JavaScript ภายในกลับมาทำงานToBoolean false ToBooleanunderlies !value, และvalue ? ... : ...; if (value)นี่คือข้อมูลจำเพาะอย่างเป็นทางการ (ร่างการทำงานในปี 2020) (การเปลี่ยนแปลงเพียงอย่างเดียวตั้งแต่ข้อกำหนด ECMAscript แรกในปี 1997คือการเพิ่มสัญลักษณ์ของ ES6ซึ่งเป็นความจริงเสมอและBigIntกล่าวถึงข้างต้น:

เปรียบเทียบกับ==(ความเท่าเทียมกันแบบหลวม)
เป็นมูลค่าการพูดคุยเกี่ยวกับการเปรียบเทียบค่าหลวม ๆ==ของปลอมซึ่งใช้ToNumber()และอาจทำให้เกิดความสับสนเนื่องจากความแตกต่างพื้นฐาน พวกเขาได้อย่างมีประสิทธิภาพในสามกลุ่ม:
false, 0, -0, "", '' ทั้งหมดตรงกันกันด้วย == 
- เช่น
false == "", '' == 0และดังนั้นจึง4/2 - 2 == 'some string'.slice(11);   
 
null, undefined เข้าคู่กับ ==
- เช่น 
null == undefinedแต่undefined != false 
- นอกจากนี้ยังเป็นมูลค่าการกล่าวขวัญว่าในขณะที่
typeof nullผลตอบแทน'object', nullเป็นไม่วัตถุนี้เป็นปัญหาที่ยาวนาน / มุมแหลมที่ไม่ได้รับการแก้ไขเพื่อรักษาความเข้ากันได้ มันไม่ใช่วัตถุจริงและวัตถุนั้นเป็นความจริง (ยกเว้น "การละเมิดโดยเจตนา" document.allเมื่อใช้งาน Javascript ใน HTML) 
 
NaN ไม่ตรงกับสิ่งใดด้วย==หรือ===ไม่แม้แต่กับตัวเอง
- เช่น
NaN != NaN, NaN !== NaN, NaN != false,NaN != null 
 
ด้วย "ความเท่าเทียมกันอย่างเข้มงวด" ( ===) ไม่มีการจัดกลุ่มดังกล่าว เท่านั้นfalse === falseเท่านั้น
นี้เป็นหนึ่งในเหตุผลที่ว่าทำไมนักพัฒนาจำนวนมากและคำแนะนำหลายรูปแบบ (เช่นstandardjs ) ชอบและแทบไม่เคยใช้=====
ค่าความจริงที่จริง == false
"Truthy" ก็หมายความว่า JavaScript ภายในกลับมาทำงานToBoolean จาวาสคริปต์ที่ต้องระวัง (และอีกเหตุผลที่ดีที่ชอบมากกว่า): เป็นไปได้ที่ค่าจะเป็นจริง ( ส่งคืน) แต่ก็เป็นไปได้เช่นกันtrue=====ToBooleantrue== false
คุณอาจคิดว่าif (value && value == false) alert('Huh?')เป็นไปไม่ได้ในเชิงตรรกะที่ไม่สามารถเกิดขึ้นได้ แต่จะทำเพื่อ:
"0"และ'0'- เป็นสตริงที่ไม่ว่างเปล่าซึ่งเป็นความจริง แต่จาวาสคริปต์==จับคู่หมายเลขกับสตริงที่เทียบเท่า (เช่น42 == "42") ตั้งแต่0 == falseถ้า   "0" == 0, "0" == false. 
new Number(0)และnew Boolean(false)- พวกเขากำลังวัตถุซึ่งเป็น truthy แต่เห็นค่าของพวกเขาซึ่ง==== false 
0 .toExponential(); - วัตถุที่มีค่าตัวเลขเทียบเท่า 0 
- สิ่งปลูกสร้างที่คล้ายกันใด ๆ ที่ให้คุณค่าที่เท่าเทียมกับคุณในประเภทที่เป็นความจริง
 
[], [[]]และ[0](ขอบคุณcloudfeetสำหรับการเชื่อมโยง JavaScript เท่าเทียมกันตาราง ) 
บางค่าความจริงเพิ่มเติม
นี่เป็นเพียงค่าเล็กน้อยที่บางคนอาจคาดหวังว่าจะเป็นเท็จ แต่จริง ๆ แล้วเป็นเรื่องจริง
true, 1, "1"และ[1]ผลตอบแทนtrueเมื่อเทียบกับคนอื่น ๆ ==ด้วย