ความแตกต่างระหว่าง Null และ Undefined ใน JavaScript คืออะไร?

ความแตกต่างระหว่าง Null และ Undefined ใน JavaScript คืออะไร?

คู่มือนี้จะดูความแตกต่างระหว่าง โมฆะ และ ไม่ได้กำหนด ค่าในจาวาสคริปต์ การทราบความแตกต่างระหว่างค่าทั้งสองนี้มีความสำคัญต่อการดีบักและการสร้างโค้ดที่ปราศจากข้อผิดพลาด





วิธีสร้าง dvd บูต windows 10 ได้

ใช้คอนโซลเบราว์เซอร์ของคุณเพื่อปฏิบัติตามหรือลองใช้ตัวอย่างโค้ดที่กล่าวถึงในคู่มือนี้





การเปรียบเทียบความเท่าเทียมกันของค่าว่างและค่าที่ไม่ได้กำหนด

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





โมฆะ และ ไม่ได้กำหนด ค่าจะเท่ากันเมื่อเปรียบเทียบโดยใช้ตัวดำเนินการความเท่าเทียมกันของ JavaScript

ใช้ตัวดำเนินการความเท่าเทียมกัน ( == ) เพื่อเปรียบเทียบ if โมฆะ และ ไม่ได้กำหนด ค่าเท่ากันใน JavaScript



เปิดคอนโซลเบราว์เซอร์ของคุณและป้อนรหัสต่อไปนี้ จากนั้นกด เข้า.

null == undefined

ผลลัพธ์ควรให้บางสิ่งที่มีลักษณะดังนี้ ค่าบูลีนที่ส่งคืนของ จริง ก็หมายความว่าทั้งสองค่าเท่ากัน





เรียนรู้เพิ่มเติม: วิธีประกาศตัวแปรใน JavaScript

การเปรียบเทียบความเท่าเทียมกันอย่างเข้มงวด

JavaScript ยังมีตัวดำเนินการข้อมูลประจำตัว ( === ) หรือที่เรียกว่าตัวดำเนินการความเท่าเทียมที่เข้มงวดนอกเหนือจากตัวดำเนินการความเท่าเทียมกัน ( == )





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

หากต้องการทดสอบความเท่าเทียมกันอย่างเข้มงวด ให้ใช้เครื่องหมายเท่ากับสามเท่าด้านล่าง

null === undefined

ผลลัพธ์ของคำสั่งด้านบนจะให้ค่าบูลีนเป็น เท็จ กล่าวอีกนัยหนึ่ง ค่าทั้งสองไม่เหมือนกันแม้ว่าจะเท่ากันก็ตาม

ค้นหาประเภทของ Null และ Undefined

ใช้ฟังก์ชัน JavaScript ในตัว ประเภทของ() เพื่อค้นหาประเภทพื้นฐานของค่า ฟังก์ชันใช้พารามิเตอร์เดียวของค่าที่มีประเภทที่คุณต้องการค้นหา

ที่เกี่ยวข้อง: สุดยอด JavaScript Cheat Sheet

typeof(null)

ค่า Null เป็นประเภท วัตถุ ดังที่คุณเห็นจากผลลัพธ์ด้านล่าง

ทำการทดสอบที่คล้ายกันใน ไม่ได้กำหนด ค่าจะให้ผลลัพธ์ของ ไม่ได้กำหนด .

typeof(undefined)

การทำงานกับตัวเลข

เพื่อสำรวจความแตกต่างเพิ่มเติม ทำการทดสอบตัวเลขบน โมฆะ และ ไม่ได้กำหนด ค่า หากค่าเป็นตัวเลข แสดงว่าเราสามารถดำเนินการเชิงตัวเลขกับค่านั้นได้

มีสองวิธีหลักในการทดสอบว่าค่าเป็นตัวเลขใน JavaScript หรือไม่

1. การใช้ isFinite () ฟังก์ชั่น—ถ้าค่าที่ทดสอบเป็นตัวเลข ฟังก์ชันจะส่งกลับ จริง ; มิฉะนั้นมันจะกลับมา เท็จ .

2. การใช้ isNaN() ฟังก์ชัน—หากค่าที่ทดสอบเป็นตัวเลข จะส่งกลับ เท็จ ; มิฉะนั้นมันจะกลับมา จริง .

บันทึก : คือNaN ย่อมาจาก 'is Not a Number'

เพื่อให้ง่ายยิ่งขึ้น คู่มือนี้จะใช้เฉพาะ isFinite () ฟังก์ชันเพื่อทดสอบว่าค่าเป็นตัวเลขหรือไม่ แต่ให้ลองใช้ isNaN() การทำงาน. ฟังก์ชันทั้งสองนี้ใช้ค่าที่คุณต้องการเรียกใช้การทดสอบตัวเลขเป็นพารามิเตอร์

isFinite(null)

ผลลัพธ์คือ จริง , ความหมาย โมฆะ เป็นค่าของประเภท ตัวเลข ในจาวาสคริปต์ ในขณะที่ทำการทดสอบแบบเดียวกันบน ไม่ได้กำหนด ผลตอบแทน เท็จ .

isFinite(undefined)

พิมพ์ ข่มขู่

JavaScript เป็นภาษาที่พิมพ์หลวมๆ และด้วยเหตุนี้ เมื่อดำเนินการทางคณิตศาสตร์ JavaScript จะแปลงผลลัพธ์เป็นประเภทที่ต้องการโดยอัตโนมัติ

น่าเสียดายที่การแปลงอัตโนมัตินี้ ซึ่งโดยทั่วไปเรียกว่าการบีบบังคับแบบประเภท สามารถสร้างความประหลาดใจได้มากมายพร้อมกับมัน

เรียกใช้การดำเนินการตัวเลขต่อไปนี้บน โมฆะ และ ไม่ได้กำหนด ในคอนโซลเบราว์เซอร์ของคุณ

1 + null 3 * null 1 + undefined 3 * undefined;

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

การดำเนินการเชิงตัวเลขบน ไม่ได้กำหนด ค่าส่งผลให้ส่งคืน น่าน (ไม่ใช่ตัวเลข) ค่า หากไม่ปฏิบัติอย่างระมัดระวัง คุณอาจประสบปัญหานี้ระหว่างรันไทม์

หลีกเลี่ยงบั๊กรันไทม์

ความเข้าใจที่ดีของ โมฆะ และ ไม่ได้กำหนด ค่ามีความสำคัญในการหลีกเลี่ยงจุดบกพร่องรันไทม์ในโค้ดการผลิตของคุณ Bugs ที่เกี่ยวข้องกับ ไม่ได้กำหนด ค่าอาจแก้จุดบกพร่องได้ยากและควรหลีกเลี่ยง

พิจารณาใช้ TypeScript สำหรับโค้ดที่พิมพ์แรงมากซึ่งคอมไพล์ไปยัง JavaScript ใน TypeScript รหัสของคุณจะถูกตรวจสอบในเวลาคอมไพล์เพื่อลดจุดบกพร่องของรันไทม์ในโค้ดที่ใช้งานจริงของคุณ

แบ่งปัน แบ่งปัน ทวีต อีเมล หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • JavaScript
  • เคล็ดลับการเข้ารหัส
เกี่ยวกับผู้เขียน น่าไป(เผยแพร่บทความ 36 ฉบับ)

Mwiza พัฒนาซอฟต์แวร์ตามอาชีพและเขียนอย่างกว้างขวางบน Linux และการเขียนโปรแกรมส่วนหน้า ความสนใจบางส่วนของเขารวมถึงประวัติศาสตร์ เศรษฐศาสตร์ การเมือง และสถาปัตยกรรมองค์กร

เพิ่มเติมจาก Mwiza Kumwenda

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก