ฉันเรียนรู้ JavaScript เมื่อหลายปีก่อน แต่ตั้งแต่นั้นมาฉันก็ไม่ได้ใช้มันมาเป็นเวลานานแล้ว เมื่อเร็ว ๆ นี้ฉันหยิบมันขึ้นมาอีกครั้งและทบทวนประเด็นที่น่าสับสนบางประการ วันนี้ฉันมาดูความแตกต่างระหว่างสตริงว่าง ไม่ได้กำหนด และสตริงว่างใน JavaScript

ค่าว่าง

“Null” แสดงถึงการไม่มีค่าวัตถุใดๆ โดยเจตนา ซึ่งบ่งชี้ว่าตัวแปรชี้ไปที่ไม่มีวัตถุ มันเหมือนกับกล่องเปล่าที่ไม่มีอะไรอยู่ข้างใน นี่คือตัวอย่างการใช้เมธอด match():

let fruitName = ‘apple’;

console.log(fruitName.match(/a/))
// logs [ ‘a’, index: 0, input: ‘apple’, groups: undefined ]

console.log(fruitName.match(/b/))
// logs null

ไม่ได้กำหนด

“ไม่ได้กำหนด” หมายความว่ามีการประกาศตัวแปรแล้ว แต่ยังไม่มีค่า มันเหมือนกับกล่องที่รอการเติมเต็มอะไรบางอย่าง ค่าที่ไม่ได้กำหนดจะปรากฏในกรณีต่อไปนี้:

  1. เมื่อมีการประกาศตัวแปรโดยไม่มีการกำหนด:
console.log(favoriteFood); // logs undefined
let favoriteFood = "pizza";
console.log(favoriteFood); // logs "pizza"

2. เมื่อใช้ตัวแปรก่อนที่จะมีการประกาศ:

console.log(favoriteFood); // logs undefined
let favoriteFood = "pizza";

แม้ว่า JavaScript จะเป็นภาษาที่ยืดหยุ่นซึ่งคุณไม่จำเป็นต้องกำหนดค่าทันทีเมื่อคุณประกาศตัวแปร แต่การพยายามใช้ตัวแปรที่ยังไม่ได้ประกาศในโค้ดทั้งหมดของคุณจะส่งผลให้เกิด "ข้อผิดพลาดในการอ้างอิง"

console.log(favoriteFood); // causes a reference error

3. เมื่อคุณพยายามเข้าถึงคุณสมบัติของวัตถุที่ไม่มีอยู่ หรือใช้กรณีที่แตกต่างจากที่คุณประกาศ ผลลัพธ์จะเป็น undefined:

let person = {
 name: "Alice",
 age: 30
};
console.log(person.favoriteFood); // logs undefined
console.log(person.Name); // logs undefined
console.log(person.name); // logs "Alice"

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

สตริงว่าง

สตริงว่างคือสตริงที่ไม่มีสิ่งใดอยู่ข้างใน มันเหมือนกับคำที่ไม่มีตัวอักษร นี่คือตัวอย่าง:

let favoriteFood = " ";
console.log(favoriteFood); // logs an empty string

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