วันนี้ฉันเห็นชิ้นส่วนของคอมเพรสเซอร์ของ Yui บีบอัดรหัส JS:
ผู้ใช้ && (ind += ดัชนี, ind> = ผู้ใช้ && (ind -= ผู้ใช้), ind <0 && (ind === -2 && (ind = -1), ind += ผู้ใช้), selli.removeclass ("on"), $ (selli [ind]).
ฉันบ้าไปแล้วและอาจมีคนไม่กี่คนที่เข้าใจได้ทั้งหมดในครั้งเดียว จากนั้น "แปล" เขา
&& (โลจิสติกส์และ)
นี่คือการดำเนินการ "&&" ส่วนใหญ่ ก่อนอื่นคุณต้องเข้าใจสิ่งนี้และดูตัวอย่างง่ายๆ:
1 var a = 1 && 2 && 3; // 3
2 var b = 0 && 1 && 2; // 0
3 var c = 1 && 0 && 2; // 0
4 การแจ้งเตือน (a), การแจ้งเตือน (b), การแจ้งเตือน (c);
ฮิฮิวิธีการเขียนนั้นแปลกมากผลลัพธ์ของการทำงานคือ 3, 0, 0 โดยทั่วไปเรามักจะใช้มันในงบ การดำเนินการ "&&" (ตรรกะและ) เป็นสิ่งที่ตรงกันข้ามกับ "||" การดำเนินการ. การดำเนินการ "&&" จะกลับมาเมื่อพบเท็จ
ตัวอย่างเช่น: A && B หาก A เป็นจริงกลับไปที่ B โดยตรงโดยไม่คำนึงว่า B นั้นเป็นจริงหรือเท็จ หาก A เป็นเท็จให้ส่งคืนโดยตรง ในตัวอย่างด้านบน var แรก a = 1 && 2 && 3; เพราะ 1 && 2, 1 เป็นจริงกลับ 2; 2 && 3, 2 เป็นจริงกลับมา 3
หลังจากทำความเข้าใจกับการดำเนินการ "&&" จากนั้นดูที่รหัส JS คอมเพรสเซอร์ YUI ที่บีบอัดในพื้นผิวด้านบนแล้วแปล:
ถ้า (ผู้ใช้) {ind += ดัชนี; ถ้า (ind> = ผู้ใช้) {ind- = ผู้ใช้;} ถ้า (ind <0) {ถ้า (ind === -2) {ind = -1;} ind += ผู้ใช้; -ที่จะละอายใจฉันแก่แล้วและ "แปล" เป็นเวลาครึ่งชั่วโมง แต่ก็เป็นเพียงความช่วยเหลือของเพื่อนร่วมงานของฉันว่า "การแปล" นั้นถูกต้อง
|| (ตรรกะหรือ)
มาดู“ ||” (ตรรกะหรือ) การดำเนินการและดูตัวอย่าง:
1 var a = 0 || 1 || 2; // 1
2 var b = 1 || 0 || 3; // 1
3 การแจ้งเตือน (a), การแจ้งเตือน (b);
"||" การดำเนินการจะกลับมาเมื่อพบจริง ตัวอย่างเช่น: A || B หาก A เป็นเท็จกลับโดยตรง b โดยไม่คำนึงว่า B เป็นจริงหรือเท็จ หาก A เป็นจริงมันจะกลับมาโดยตรงและจะไม่ดำเนินการต่อไป
&& (ตรรกะและ) และ || (ตรรกะหรือ) ควรให้ความสนใจกับลำดับความสำคัญของพวกเขา:
&& (ตรรกะ &) ลำดับความสำคัญสูงกว่า || (ตรรกะหรือ)
คืน && b || C,
เราสามารถตัดสินค่าคืนได้ตาม หาก A เป็นเท็จมันจะกลับมาอย่างแน่นอน c; หาก B และ C เป็นจริงเราสามารถตัดสินใจได้ว่า B หรือ C ตาม หาก A เป็นเท็จมันจะกลับมาค หาก A เป็นจริงมันจะกลับมา b
คืน || b && c
ตามลำดับความสำคัญ B && C จะถูกคำนวณก่อนจากนั้น A คือหรือกับ A; หาก A เป็นจริงมันจะส่งคืน A ไม่ว่าจะเป็น B หรือ C ถ้า A เป็นเท็จถ้า B เป็นเท็จมันจะกลับ B และถ้า B เป็นจริงมันจะกลับมา C;
1 var a = 3 && 0 || 2; // 2
3 var b = 3 || 0 && 2; // 3
5 var c = 0 || 2 && 3; // 3
6 การแจ้งเตือน (a), การแจ้งเตือน (b), การแจ้งเตือน (c);
นอกจากนี้ยังแนบ: ลำดับความสำคัญของตัวดำเนินการ JS (แสดงจากสูงถึงต่ำ)
| ผู้ประกอบการ | อธิบาย |
| - - | การเข้าถึงฟิลด์, ตัวห้อยอาร์เรย์, การเรียกใช้ฟังก์ชันและการจัดกลุ่มนิพจน์ |
| - ลบโมฆะประเภทใหม่ | ตัวดำเนินการ Unary, ประเภทข้อมูลส่งคืน, การสร้างวัตถุ, ค่าที่ไม่ได้กำหนด |
| - | การคูณการแบ่งการสกัดแม่พิมพ์ |
| - | นอกจากนี้, การลบ, การเชื่อมต่อสตริง |
| - | กะ |
| <<= >> = อินสแตนซ์ของ | น้อยกว่าน้อยกว่าหรือเท่ากับมากกว่ามากกว่าหรือเท่ากับอินสแตนซ์ของอินสแตนซ์ |
| - | เท่ากันไม่เท่ากันเท่ากันอย่างเคร่งครัดไม่เท่ากันอย่างเคร่งครัด |
| - | bitwise และ |
| - | bitwise xor |
| - | bitwise หรือ |
| - | ตรรกะและ |
| - | ตรรกะหรือ |
| - | เงื่อนไข |
| = op = | การมอบหมายงานมอบหมายการดำเนินงาน |
| - | การประเมินผลหลายครั้ง |
บทความข้างต้นกล่าวถึงผู้ให้บริการ JS โดยย่อ && และ || และลำดับความสำคัญของพวกเขาคือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น