|| และ ?? ใน JavaScript แตกต่างกันอย่างไร

9 Jun 2022,
Share: 
Cover image

สวัสดีครับ บทความนี้จะมีเนื้อหาเกี่ยวกับการใช้งาน || และ ?? ในภาษา JavaScript ครับ ซึ่งการใช้งานโดยทั่วไปจะมีความคล้ายๆกัน แต่จะมีรายละเอียดเล็กน้อยที่มีความต่างกัน ถ้าเราไม่ทราบอาจจะทําให้ Code ที่เราเขียนมี Bug ได้

เรามาเริ่มกันตรงที่การใช้งานโดยทั่วไปกันก่อนครับ โดยปกติเวลาเราต้องการเลือกใช้ข้อมูลที่ไม่ใช่ค่า null จากสองตัวแปรเราสามารถเขียนแบบสั้นๆโดยไม่ต้องใช้ if…else ได้โดยใช้ || และ ?? ตามตัวอย่างนี้ครับ

const a = null;
const b = 'this is b';

const result1 = a || b;
const result2 = a ?? b;

// Output
// result1:  this is b
// result2:  this is b

จาก Code ด้านบนหมายความว่า ทั้ง result1 และ result2 จะมีค่าเท่ากับ a ก็ต่อเมื่อ a != null หรือถ้า a == null ทั้ง result1 และ result2 จะมีค่าเท่ากับ b ทันที

ในตัวอย่างก็ดูให้ผลลัพธ์ที่เหมือนกัน แต่ในความเป็นจริงทั้ง || และ ?? มีความแตกต่างกันอยู่เล็กน้อยครับ ลองดูตามตัวอย่างนี้ครับ

const a = '';
const b = 'this is b';

const result1 = a || b;
const result2 = a ?? b;

console.log('result1: ', result1);
console.log('result2: ', result2);

// Output
// result1:  this is b
// result2:

ถ้าเราเปลี่ยน a ให้มีค่าเป็น "" ผลลัพธ์ที่ได้จะออกมาต่างกันดังนี้คือ result2 จะมีค่าเท่ากับ "" เนื่องจาก ?? จะมองว่า "" ไม่มีค่าเป็น null จึงทําให้ result2 ได้ค่าของ a ไป นั่นก็คือ "" นั่นเอง

สรุป

|| และ ?? ต่างกันตรงที่ ?? จะมองว่า null และ "" เป็นคลละตัวกัน ในทางกลับกัน || จะมองว่า null และ "" เป็นตัวเดียวกัน จึงทําให้ผลลัพธ์ออกมาแตกต่างกัน

Suggestion blogs

การใช้งาน putty เบื้องต้น

Putty คืออะไร?Putty เป็นโปรแกรม Remote Server หรือ SSH ( Secure Shell ) พูดให้เข้าใจง่ายๆก็คือ เราสามารถใช้โปรแกรมนี้ในการ สั่งงาน Server ด้วย command line โดยส่วนใหญ่แล้วจะใช้เชื่อมต่อไปยัง server ที่เป็น linux รองรับการเชื่อมต่อหลากหลายรูปแบบดังนี้

แก้ปัญหา Preset ใน Premiere Pro CS6 ไม่ครบ

กรณีที่เราลง Adobe Premiere Pro CS6 หลังจาก Crack แล้ว เมื่อเปิดโปรแกรมขึ้นมาใช้งาน Preset จะขึ้นไม่ครบ HDV ไม่ขึ้น ดังรูป

Unbox ไฟฉาย Jetbeam Jet-TH20 3,450 Lumens

ไฟฉาย Jetbeam รุ่น Jet-TH20 เป็นไฟฉายรุ่นที่ที่มีความสว่างสูงสุด 3,450 Lumens แสงพุ่งไกลถึง 350 เมตร จุดเด่นของรุ่นนี้คือ สามารถใช้งานได้ในขณะอุณหภูมิติดลบถึง -20°Cใช้แบตเตอรี่ขนาด 18650 หรือ CR123*2 คุณสมบัติโดยทั่วไปดังนี้


Copyright © 2019 - 2025 thiti.dev |  v1.58.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ