วิธีใช้ JavaScript Booleans
ค่า True หรือ False อยู่ทุกที่ในการเขียนโปรแกรม เราเรียกค่าเหล่านี้ว่า Booleans พวกมันใช้เปรียบเทียบสองค่าหรือมากกว่า และควบคุมว่าส่วนไหนของโปรแกรมควรทำงาน
ในคู่มือนี้ เราจะพูดถึง Booleans คืออะไร และทำงานอย่างไร จะเดินทางผ่านตัวอย่างการใช้ JavaScript Booleans เพื่อช่วยให้คุณเริ่มต้นได้
JavaScript Boolean คืออะไร?
Boolean คือค่าที่เป็นได้แค่ True หรือ False
Booleans ตั้งชื่อจาก George Boole นักคณิตศาสตร์ชื่อดังที่เกี่ยวข้องกับการก้าวหน้าของ mathematical logic นั่นคือเหตุผลที่ Booleans ต้อง capitalize เสมอ
ทุก object ที่มีค่าใน JavaScript คือ true ทุกอย่างที่ไม่มีค่า คือ false
ค่าต่อไปนี้ evaluate เป็น true ทั้งหมด:
- 10
- "Hello"
- True
Null, false, undefined, 0, NaN หรือ empty string value ถือเป็น false
มา discutir ว่า Booleans ใช้ใน JavaScript ยังไง!
ใช้ Booleans ทำ Comparisons
Comparison มีได้แค่สองผลลัพธ์: true หรือ false นั่นหมายความว่าเราใช้ Booleans evaluate ผลลัพธ์ของ comparison ได้
JavaScript ใช้ comparison operators เปรียบเทียบสองค่า นี่คือ operators:
- ==: เท่ากับ
- !=: ไม่เท่ากับ
- >: มากกว่า
- <: น้อยกว่า
- <=: น้อยกว่าหรือเท่ากับ
- >=: มากกว่าหรือเท่ากับ
ตอนใช้สอง operators สุดท้ายในลิสต์ข้างบน ต้องแน่ใจว่าจัดเรียงเครื่องหมายถูกต้อง JavaScript จะไม่เข้าใจโค้ดถ้าคุณสลับเครื่องหมาย
เราจะสร้างโปรแกรม evaluate อายุของนักเรียนสองคนใน high school class เริ่มเช็คว่านักเรียน Alex อายุมากกว่า Lisa หรือไม่:
var lisa = 15; var alex = 16; console.log(alex > lisa);
โค้ดคืนค่า: true
Alex อายุ 16 Lisa อายุ 15 หมายความว่า Alex มากกว่า Lisa เราใช้ comparison operator ใดก็ได้ evaluate ว่าตัวแปรสองตัวเปรียบเทียบกันยังไง ลองดูว่า Alex อายุเท่ากับ Paul หรือไม่:
var paul = 16; var alex = 16; console.log(alex == paul);
โค้ดเช็คว่าค่า "alex" เท่ากับ "paul" หรือไม่ ทั้งคู่อายุ 16 โค้ดคืนค่า: true
Strings evaluate ด้วย JavaScript Booleans ได้
ลองเช็คว่า Lisa อยู่ honor roll เดือนนี้ไหม:
var honor_roll = "Alex"; var student = "Lisa"; console.log(honor_roll == student);
โค้ดคืนค่า: false เราเช็คว่าค่า "honor_roll" เท่ากับ "student" หรือไม่ Honor roll student คือ Alex หมายความว่าเวลาเปรียบเทียบสอง strings false คืนค่า ถ้า Lisa อยู่ honor roll โค้ดจะคืน true
เราสามารถ assign ผลลัพธ์ของ comparison นี้ให้ boolean variable:
var is_honor_roll_student = (honor_roll == student); console.log(is_honor_roll_student);
โค้ดคืนค่า: true โค้ดทำ comparison เหมือนกัน ค่าของ Boolean object comparison เก็บใน variable "is_honor_roll_student" แล้วพิมพ์ค่าตัวแปรนั้นไปที่ console
ใช้ Booleans กับ Logical Operators
Logical operators มักใช้ evaluate สอง expressions หรือมากกว่า อนุญาตให้เช็คว่าสอง statements หรือมากกว่าเป็น true, หนึ่งในสอง statements เป็น true, หรือหนึ่งหรือมากกว่า statements เป็น false
มี logical operators สามตัวใช้กับ Boolean functions ได้:
- &&: And
- ||: Or
- !: Not
มาสร้างโปรแกรมเช็คว่าซื้อ computer game ใหม่จาก online store ได้ไหม เราจะเช็คก่อนว่าลูกค้ามี gift card balance พอหรือไม่ หรือมี credit card ที่ charge ได้:
var gift_card_balance = 25.00; var cost = 30.00; var card = true; console.log((balance >= cost) or (card == true));
โค้ดเช็คว่าลูกค้ามีเงินใน gift card พอ หรือมี card ผูกกับ account โค้ดคืนค่า: true
ลูกค้าไม่มีเงินพอใน gift card balance แต่มี card ผูกกับ account เพราะหนึ่งในสอง expressions ที่ระบุเป็น true expression จึง evaluate เป็น true
เกมที่ซื้อ rated 18+ ลองเช็คว่าลูกค้าอายุมากกว่า 18 และมีเงินพอซื้อเกมไหม:
var age = 19; var enough_money = true; console.log((enough_money == true) && (age >= 18))
โค้ดคืนค่า: true เราใช้ && operator เช็คว่าทั้งสอง conditions ตรงตามเงื่อนไข พวกมันตรง จึงคืนค่า true
เราใช้ not operator เช็คว่า expression เป็น false ได้ ลองดูว่าลูกค้าซื้อเกมมาก่อนไหม:
var purchases = 1; var purchased_before = !(purchases == 0); console.log(purchased_before);
โค้ดเช็คว่าลูกค้าซื้อเกมมาก่อน ใช้ not ("!") operator invert ผลลัพธ์ของ purchases == 0 หมายความว่าถ้าลูกค้าซื้อเกมมาก่อน expression จะ evaluate เป็น true
ใช้ Booleans กับ if Statement
Booleans ใช้ควบคุม flow ของโปรแกรม หมายความว่าคุณใช้ Boolean กำหนดว่า block โค้ดไหนควรรัน
Code snippet นี้พิมพ์ข้อความไปที่ console ถ้าลูกค้ามี balance บน gift card พอซื้อเกม:
var balance = 25.00; var cost = 30.00; if (balance >= cost) { console.log("This gift card has enough money."); } else { console.log("This gift card has an insufficient balance."); }
โค้ดคืนค่า: This gift card has an insufficient balance
โค้ด evaluate ว่า balance ของลูกค้าเท่ากับหรือมากกว่า cost ของเกม ถ้าลูกค้ามีเงินพอ โค้ดใน "if" statement จะรัน ไม่เช่นนั้น โค้ดใน else statement จะรัน
ลองดูเวลาเปลี่ยน "balance" เป็น $32.50:
var balance = 32.50; ...
โค้ดคืนค่า: This gift card has enough money
สรุป
Boolean เก็บค่า true หรือ false Booleans มักใช้ evaluate ว่า expression เป็น true หรือ false คุณใช้ Boolean กับ if statement รันบล็อกโค้ดจากว่า expression evaluate เป็น Boolean value ไหน
ตอนนี้คุณพร้อมใช้ JavaScript booleans แบบ expert developer แล้ว!