เช่นเดียวกับภาษาเช่น C และ Java การตัดสินเชิงตรรกะสามครั้งใน JavaScript สามารถใช้เพื่อตัดสินค่าบูลีนอย่างมีเหตุผล ซึ่งแตกต่างจาก c และ java, ตรรกะและ (&&) และตรรกะหรือ (||) ตัวดำเนินการใน JavaScript สามารถนำไปใช้กับค่าใด ๆ และค่าบูลีนที่ส่งคืนอาจไม่จำเป็นหลังจากการดำเนินการเสร็จสิ้น
ตรรกะและ && กฎการประมวลผล
กฎการประมวลผลของ && ใน JavaScript มีดังนี้:
1. ตรวจสอบว่าค่าแรกนั้นเป็นเท็จหรือไม่ หาก Falsy ค่าแรกจะถูกส่งคืนโดยตรง (ไม่จำเป็นต้องเป็นประเภทบูลีน)
2. หากค่าแรกคือความจริงค่าที่สองจะถูกส่งคืนโดยตรง (ไม่จำเป็นต้องเป็นประเภทบูลีน)
การคัดลอกรหัสมีดังนี้:
var o = {x: 1, y: 2};
console.log (o && oy); // 2
console.log (null && x); // null
ตรรกะหรือ ||
คล้ายกับตัวดำเนินการ && กฎการประมวลผลของ || ใน JavaScript มีดังนี้:
1. พิจารณาว่าค่าแรกเป็นความจริงหรือไม่ หากความจริงค่าแรกจะถูกส่งคืนโดยตรง (ไม่จำเป็นต้องเป็นประเภทบูลีน)
2. หากค่าแรกเป็นเท็จค่าที่สองจะถูกส่งคืนโดยตรง (ไม่จำเป็นต้องเป็นประเภทบูลีน)
พฤติกรรมของ || นี้ ผู้ประกอบการทำให้วิธีการเขียนทางลัดบางอย่างใน JavaScript เป็นจริง:
1. รับค่าความจริงแรกจากชุดของค่า:
การคัดลอกรหัสมีดังนี้:
var a = null;
var b = 42;
var v = a || B || 100;
console.log (v); // 42
2. กำหนดค่าเริ่มต้นให้กับพารามิเตอร์ในฟังก์ชัน:
การคัดลอกรหัสมีดังนี้:
การทดสอบฟังก์ชั่น (P) {
P = P || {}; // หากไม่ผ่าน P ให้เป็นวัตถุที่ว่างเปล่า
-
ไม่เหมือน && และ || พฤติกรรมของ! ผู้ประกอบการสอดคล้องกับภาษาเช่น C, Java ฯลฯ และส่งคืนค่าบูลีนเท่านั้น (จริงหรือเท็จ)