|| และ ?? ใน 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

php header content type and charset utf8

วิธีใส่ header charset utf-8 ในภาษา PHP

Docker Compose

สวัสดีครับ บทความนี้ผมจะพูดถึงเรื่อง Docker compose ซึ่งผมมองว่ามันเป็นหัวใจหลักของ Docker เลยก็ว่าได้เพราะมันจะช่วยให้การจัดการ Docker ทั้ง project ของเราเป็นเรื่องง่าย ก่อนที่จะอ่านบทความนี้จะต้องรู้ใน

วิธีสร้าง VM Instance ใน google developers console

VM Instance เป็นบริการของ google ที่ให้เราสร้างเครื่อง Server(Virtual machine) โดยเราสามารถกําหนดได้ตั้งแต่ Hardware ของเครื่อง ไปจนถึง OS ที่เราต้องการ ทําให้เราสามารถมีเครื่อง Server เป็นของตัวเองได้ง่ายๆภายในไม่กี่คลิ๊ก เริ่มแรกให้เราเข้าไปที่ console.developers.google.com/project จะขึ้นหน้าจอสําหรับจัดการ project ให้เราคลิ๊ก Create Project


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

Build with ❤️ and Astro.

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