ไม่ได้กำหนด
ระบุว่าตัวแปรได้รับการประกาศ แต่ยังไม่ได้เริ่มต้น ควรสังเกตว่าเมื่อใช้ตัวดำเนินการ typeof เพื่อกำหนดชนิดข้อมูลค่าที่ส่งคืนโดยตัวแปรที่ไม่ได้ประกาศและตัวแปรที่ไม่ได้รับการกำหนดจะไม่ได้กำหนด
ข้อความ var; console.log (ข้อความ typeof); // undefinedConsole.log (typeof age); // undefined
NULL: หมายถึงตัวชี้วัตถุเปล่า
ค่าที่ส่งคืนโดยใช้ตัวดำเนินการ typeof คือ 'วัตถุ' ควรสังเกตว่าค่าที่ไม่ได้กำหนดนั้นได้มาจากค่า NULL ดังนั้น ECMA-262 กำหนดว่าพวกเขาจะต้องส่งคืนจริงเมื่อทำการทดสอบเพื่อความเท่าเทียมกัน
console.log (null == undefined); // true
ความแตกต่างระหว่างที่ไม่ได้กำหนดและ null
(1) ไม่ได้กำหนดหมายความว่าตัวแปรยังไม่ได้รับการประกาศหรือได้รับการประกาศ แต่ยังไม่ได้รับมอบหมาย
(2) NULL เป็นค่าที่ระบุว่า "ไม่มีค่า"
(3) JavaScript ตั้งค่าเริ่มต้นของตัวแปรที่ไม่ได้กำหนดไว้เป็น undefined
(4) JavaScript ไม่เคยตั้งค่าตัวแปรเป็น NULL มันถูกใช้เพื่อให้โปรแกรมเมอร์แสดงให้เห็นว่าตัวแปรที่ประกาศด้วย VAR ไม่มีค่า
(5) Undefined ไม่ใช่ JSON ที่ถูกต้องในขณะที่ Null คือ
(6) ประเภทของ undefined นั้นไม่ได้กำหนดและประเภทของ null เป็นวัตถุ
PS: พวกเขาเป็นประเภทพื้นฐานทั้งหมด
พวกเขาทั้งหมดเป็นเท็จ (บูลีน (ไม่ได้กำหนด) // false, boolean (null) // false)
คุณสามารถตรวจสอบได้ว่าตัวแปรนั้นไม่ได้กำหนดในลักษณะนี้
ตัวแปร typeof === "undefined"
คุณสามารถตรวจสอบได้ว่าตัวแปรนั้นเป็นโมฆะด้วยวิธีนี้
ตัวแปร === null
พวกเขามีค่าเท่ากันเมื่อเปรียบเทียบกับสัญญาณเท่ากันสองเท่า แต่ไม่เท่ากันเมื่อเปรียบเทียบกับสามสัญญาณเท่ากัน
null == undefined // true null === undefined // false