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

วิธี run sudo command ใน QProcess

วิธี run sudo command ใน QProcess คือใส่ "/bin/sh -c" ข้างหน้าคําสั่งที่ต้องการเช่น

วิธีสร้าง Private Repository Github แบบฟรีๆ

สวัสดีครับ ปัจจุบันเว็บที่ให้บริการเกี่ยวกับ version control มีอยู่มากมายหลายเว็บ แต่ที่นิยมกันก็คือ Github Github เปิดให้ใช้บริการฟรีแต่มีข้อจํากัด ไม่สามารจะสร้าง Private Repository ได้ ถ้าใครอยากจะสร้างก็ต้องเสียเงิน ในบทความนี้ผมจะมาแนะนําวิธีใช้งาน  Private Repository กันแบบฟรีๆ วิธีการก็คือ เราจะต้องส่งคําร้องขอใช้งานสําหรับนักศึกษาโดยจะเป็น free plans for educational

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

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


Copyright © 2019 - 2026 thiti.dev |  v1.61.0 |  Privacy policy | 

Build with ❤️ and Astro.

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