ฉันเรียนรู้ 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
ไม่ได้กำหนด
“ไม่ได้กำหนด” หมายความว่ามีการประกาศตัวแปรแล้ว แต่ยังไม่มีค่า มันเหมือนกับกล่องที่รอการเติมเต็มอะไรบางอย่าง ค่าที่ไม่ได้กำหนดจะปรากฏในกรณีต่อไปนี้:
- เมื่อมีการประกาศตัวแปรโดยไม่มีการกำหนด:
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