เรียนรู้เงื่อนไขการลัดวงจร '&&' ในสามนาที
Udemy Cyber Monday Sale — หลักสูตรการพัฒนาเว็บและการพัฒนาซอฟต์แวร์หลายพันรายการลดราคาเพียง $10 ในระยะเวลาจำกัด! ดูรายละเอียดทั้งหมดและคำแนะนำหลักสูตรได้ที่นี่
นี่คือส่วนที่หนึ่งของซีรีส์สองส่วนในสัปดาห์นี้:
- เงื่อนไขการลัดวงจรด้วย
&&
- การประเมินการลัดวงจรด้วย
||
ตัวอย่าง
พิจารณาสถานการณ์นี้: คุณมีโปรแกรมที่ต้องดึงข้อมูล แต่สามารถดึงข้อมูลนี้ได้หากออนไลน์อยู่เท่านั้น เราอาจพิจารณาใช้คำสั่ง if เพื่อตรวจสอบก่อนว่าเราออนไลน์อยู่หรือไม่ และหากเราออนไลน์อยู่ ให้ดึงข้อมูล โค้ดนั้นอาจมีลักษณะดังนี้:
if (online){ getData(); }
สุดยอด. รหัสนี้ใช้งานได้ดี
แต่จะเกิดอะไรขึ้นถ้าฉันบอกคุณว่าโค้ดนี้ทำสิ่งเดียวกันกับโค้ดด้านบน:
online && getData();
ตรรกะและ
ใน JavaScript ตัวดำเนินการตรรกะ AND จะคืนค่าเป็นจริงหากตัวถูกดำเนินการทั้งสองเป็นจริง มันจะคืนค่าเท็จในสถานการณ์อื่น ๆ นี่เป็นตัวอย่างง่ายๆ บางส่วน:
true && true // true true && false // false false && false // false
ตัวดำเนินการเชิงตรรกะใน JavaScript มีสองประเด็นที่สำคัญที่คุณควรทราบ:
- พวกเขาประเมินจากซ้ายไปขวา
- ลัดวงจร
การลัดวงจรหมายความว่าใน JavaScript เมื่อเราประเมินนิพจน์ AND (&&) หากตัวถูกดำเนินการตัวแรกเป็นเท็จ JavaScript จะลัดวงจรและไม่ดูแม้แต่ตัวถูกดำเนินการตัวที่สองด้วยซ้ำ
กล่าวอีกนัยหนึ่ง — หากต้องการดูตัวถูกดำเนินการตัวที่สองในนิพจน์ตรรกะ AND ตัวถูกดำเนินการตัวแรกจะต้องเป็นจริง สิ่งนี้ช่วยให้เราทำสิ่งเจ๋งๆ ได้ด้วยตรรกะ AND
การทำความเข้าใจตัวอย่าง
กลับไปที่ตัวอย่างเริ่มต้นของเรา จำไว้ว่าในสถานการณ์นี้ online
ต้องเป็น true
ก่อนที่เราจะสามารถเรียกใช้ฟังก์ชัน getData()
ของเราได้
นี่คือเงื่อนไขการลัดวงจรอีกครั้ง:
online && getData();
ถ้า online
เป็นเท็จ สมการของเราจะลัดวงจร และฟังก์ชัน getData()
ของเราจะไม่ทำงาน เฉพาะเมื่อ online
เท่ากับ true
เท่านั้น ครึ่งหลังของสมการจะถูกพิจารณา/ดำเนินการ
นั่นคือเหตุผลที่โค้ดด้านบนจะทำสิ่งเดียวกันกับโค้ดแบบมีเงื่อนไขทั่วไปของเรา:
if (online){ getData(); }
สวยเท่ใช่มั้ยล่ะ?
หมายเหตุ: หากต้องเผชิญกับสถานการณ์เช่นนี้ การเขียนโค้ดของคุณด้วยคำสั่ง
if
น่าจะดีกว่า ไม่ใช่แบบมีเงื่อนไขการลัดวงจร อย่างไรก็ตาม สิ่งสำคัญคือต้องเข้าใจว่าพวกเขากำลังทำสิ่งเดียวกันทุกประการ
หมายเหตุปิดท้าย:
ขอขอบคุณที่อ่าน และหวังว่านี่จะเป็นประโยชน์! หากคุณพร้อมที่จะเรียนรู้การพัฒนาเว็บในที่สุด โปรดดูที่ สุดยอดคู่มือสำหรับการเรียนรู้การพัฒนาเว็บแบบ Full Stack ใน 6 เดือน
ฉันเผยแพร่บทความเกี่ยวกับการพัฒนาเว็บไซต์ 4 บทความในแต่ละสัปดาห์ โปรดพิจารณา ป้อนอีเมลของคุณที่นี่ หากคุณต้องการเพิ่มลงในรายชื่ออีเมลของฉันสัปดาห์ละครั้ง หรือติดตามฉันบน Twitter