เรียนรู้ Short-Circuit ‘&&’ Conditional ใน 3 นาที

06-ธ.ค.-17

คัมภีร์เทพ IT

เชื่อว่าในชีวิตของ Programmer ทุกคนจะต้องผ่านการเขียนโปรแกรมที่ต้องใช้เงื่อนไข (Condition) มาแล้วอย่างแน่นอน วันนี้ทีมงานมีบทความเกี่ยวกับการเรียนรู้ เรียนรู้ Short-Circuit ‘&&’ Conditional อย่างรวดเร็วภายใน 3 นาที มาให้ได้ลองใช้กันครับ

ลองพิจารณา Scenario นี้ดู : คุณมีโปรแกรมที่ต้องเรียกข้อมูล แต่จะสามารถดึงข้อมูลนี้ได้เฉพาะเมื่อ Online เท่านั้น เราอาจพิจารณาใช้ If Statement เพื่อตรวจสอบก่อนว่า เรากำลัง Online หรือไม่ และถ้า Online ก็ให้ดึงข้อมูล นี่คือ Code ที่อาจเข้าข่ายดังกล่าว:

if (online){
  getData();
}

 

แน่นอนว่า Code นี้มันถูกต้อง แต่ถ้ามีอีกวิธีการเขียน Code ที่ได้ผลแบบด้านบนล่ะ

online && getData();


ตรรกะการใช้ AND

ใน JavaScript นั้น ตัวดำเนินการตรรกะ AND จะคืน “ค่าจริง” ถ้าทั้งสอง Operands เป็นจริง และ จะส่งกลับ “ค่าเท็จ” ในสถานการณ์อื่นๆ ลองมาดูตัวอย่างง่ายๆ กัน:

true && true
// true
			
true && false
// false
			
false && false
// false


มี 2 ลักษณะที่สำคัญของ ตัวดำเนินการตรรกะ ใน JavaScript ที่คุณควรทราบ

1.       Evaluate จาก ซ้าย ไป ขวา

2.       Short-circuit

Short-circuit ในที่นี้หมายความว่า ใน JavaScript เมื่อเรา Evaluate คำสั่ง AND (&&) ถ้าหาก Operand ตัวแรกเป็น False แล้ว JavaScript จะทำการ Short-circuit โดยไม่สนใจไปที่ตัว Operand ที่สองเลย หรือกล่าวอีกนัยหนึ่ง หากเรามองไปที่ Operand ตัวที่สองใน AND expression แล้ว Operand ตัวแรกจะต้องเป็น True ซึ่งสิ่งนี้ช่วยให้เราสามารถสร้างรูปแบบบางอย่างที่น่าสนใจให้กับตรรกะ AND ได้

มาทำความเข้าใจกับตัวอย่าง

ย้อนกลับไปที่ตัวอย่างข้างต้น : อย่าลืมว่าในสถานการณ์นี้ Online จะต้องเป็น True ก่อน เราถึงจะสามารถเรียกใช้ฟังก์ชัน getData () ได้ เราลองมาดู Short-circuit conditional กันอีกครั้ง:

online && getData();


ถ้า Online เป็น False สมการของเราจะ Short-circuit และฟังก์ชัน getData () ของเราก็จะไม่ทำงาน แต่เมื่อ Online ต้องมีค่าเป็น True เท่านั้น สมการครึ่งหลังถึงจะดำเนินการต่อไป และนั่นคือ เหตุผลที่ Code ข้างต้นจะทำในสิ่งเดียวกันกับ Code ที่เราใช้กันโดยทั่วไปแบบด้านล่าง:

if (online){
  getData();
}

 

ที่มา: codeburst.io

 

อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ

 

เพิ่มเพื่อน

 

 

 

บทความที่เกี่ยวข้อง