Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

ทำไม 'var null' โยน error แต่ 'var undefined' ไม่โยน?

เว็บเบราว์เซอร์โยน error สำหรับ "var null" เพราะเป็น reserved identifier (คำสงวน)

คุณไม่สามารถใช้ literal ต่อไปนี้เป็น identifier ใน ECMAScript ได้:

null true false

undefined

Property ที่ไม่มีการกำหนด ไม่รู้จัก และ ไม่ใช่ reserved identifier ชนิดของมันคือ undefined

null

เป็นค่าที่รู้จัก และเป็น reserved identifier แต่ "null" ไม่เหมือน "false" เมื่อคุณประกาศตัวแปรและตั้งค่าเป็น null แล้ว null จะถูกพิมพ์ออกมา

รายละเอียดเพิ่มเติม

  • null เป็น keyword (literal) — ไม่สามารถใช้เป็นชื่อตัวแปรได้
  • undefined เป็น property ของ global object (ในเบราว์เซอร์คือ window.undefined) — ไม่ใช่ keyword จึงใช้เป็นชื่อตัวแปรได้ (แต่ ไม่แนะนำ เพราะสับสน)
  • typeof null === "object" (bug แบบเก่า) แต่ typeof undefined === "undefined"
  • ใน strict mode การกำหนดค่าให้ undefined จะโยน error: undefined = 5 // TypeError