1. ตัวดำเนินการ Univariate
1. ผู้ประกอบการที่เพิ่มขึ้นและปล่อยตนเอง: แบ่งออกเป็นส่วนหน้าและปลายด้านหลัง;
pre-type: ++ a;-a;
โพสต์ประเภท: A ++; A--;
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
var a, b, i = 1, j = 1;
a = i ++;
B = ++ J;
การแจ้งเตือน ("a ="+a+", i ="+i+", b ="+b+", j ="+j); // a = 1, i = 2, b = 2, j = 2
</script>
โดยที่ a = i ++ เทียบเท่ากับ a = i; i = i+1;
และ b = ++ j เทียบเท่ากับ j = j+1; b = j;
2. ตัวดำเนินการเพิ่มและการลบแบบ Unary: a =+i; a = -i;
การคัดลอกรหัสมีดังนี้:
<script type = "text/javascript">
var a, b, i = 1, j = 1;
a =+i;
b = -j;
การแจ้งเตือน ("a ="+a+", i ="+i+", b ="+b+", j ="+j); // a = 1, i = 1, b = -1, j = 1
</script>
สำหรับจำนวนเต็มการลบหลักเดียวจะเทียบเท่ากับการใช้จำนวนลบ
2. บิตโอเปอเรเตอร์
1. Bitwise Non-~ (ไม่ใช่)
ไม่นั่นคือผกผันตัวเลขทั้งหมดในรูปแบบไบนารี
การใช้งานทั่วไป: การดำเนินการบิตไม่ใช่จำนวนลบเป็นหลักแล้วลบ 1
2. bitwise หรือ | (หรือ)
หรือนั่นคือตัวเลขและหมายเลขเป้าหมายทั้งหมดจะถูกบิตหรือดำเนินการในรูปแบบไบนารี
การใช้งานทั่วไป: มันมักจะใช้สำหรับการกำหนดหมายเลขไบนารีโดยไม่มีเงื่อนไข ตัวอย่างเช่น: ตัวเลข | 1 เทียบเท่ากับหมายเลขคี่ที่ใกล้เคียงกับหมายเลขปัจจุบันมากที่สุด
3. Bitwise & & (และ)
และนั่นคือตัวเลขและหมายเลขเป้าหมายทั้งหมดเป็นบิตในรูปแบบไบนารี
การใช้งานทั่วไป: มันมักจะใช้สำหรับการดำเนินการบิตแบบไบนารีเช่น: หมายเลข & 1 ถ้าผลลัพธ์คือ 0 มันจะเป็นตัวเลขที่สม่ำเสมอและถ้าเป็น 1 มันเป็นตัวเลขคี่
4. bitwise xor^ (xor)
พิเศษหรือหมายความว่าตัวเลขทั้งหมดจะถูกเปรียบเทียบกับหมายเลขเป้าหมายในรูปแบบไบนารี มีเพียงสองตัวเลขเท่านั้นที่แตกต่างกันนั่นคือเพียงหนึ่งหลักเก็บ 1 เมื่อ 1 คือ 1 คือ 1 และส่งคืน 0 ถ้าตัวเลขสองตัวเหมือนกัน
การใช้งานทั่วไป: การดำเนินการผกผันของการดำเนินการ XOR คือตัวเองนั่นคือผลลัพธ์สุดท้ายของหมายเลข XOR ไม่เปลี่ยนแปลงสองครั้ง สามารถใช้สำหรับการเข้ารหัสอย่างง่ายหรือการดำเนินการเชิงตัวเลขแบบโต้ตอบ
5. เลื่อนไปทางซ้าย <<
เลื่อนไปทางซ้ายนั่นคือย้ายตัวเลขทั้งหมดไปทางซ้ายในรูปแบบไบนารีเลื่อนจำนวนตัวเลขที่สอดคล้องกันเลื่อนตำแหน่งสูงออก (ทิ้ง) และเติมตำแหน่งศูนย์ในตำแหน่งต่ำ การเคลื่อนที่ไปทางซ้ายจะไม่ส่งผลกระทบต่อบิตป้าย
ความสำคัญทางคณิตศาสตร์: ในหลักฐานที่ว่าตัวเลขไม่ล้นสำหรับตัวเลขที่เป็นบวกและลบการขยับไปทางซ้ายนั้นเทียบเท่ากับการคูณด้วย 2 ถึงพลังของ 1 และการขยับซ้าย n บิตเทียบเท่ากับการทวีคูณ 2 ถึงพลังของ n
6. ย้ายไปทางขวา
6.1 Signed Right Shift >>: นั่นคือย้ายค่าทั้งหมดไปทางขวาในรูปแบบไบนารี แต่เก็บบิตเครื่องหมายไว้
ความสำคัญทางคณิตศาสตร์: ในหลักฐานที่ว่าตัวเลขไม่ล้นสำหรับตัวเลขที่เป็นบวกและลบการขยับไปทางขวานั้นเทียบเท่ากับการหารด้วย 2 เป็นพลังงานแรก
6.2 Shift Right ที่ไม่ได้ลงนาม >>>: นั่นคือย้ายค่าทั้งหมดรวมถึงบิตลงชื่อทางด้านขวาในรูปแบบไบนารี
สำหรับจำนวนบวกผลลัพธ์จะเหมือนกัน
สำหรับตัวเลขเชิงลบเนื่องจากตัวเลขติดลบแสดงอยู่ในส่วนเสริมค่าสัมบูรณ์ของพวกเขาผลการเปลี่ยนแปลงขวาที่ไม่ได้ลงนามจะมีขนาดใหญ่มาก
3. ผู้ให้บริการบูลีน
1. ลอจิคัลไม่ใช่ลอจิก!
ตรรกะไม่มีประโยชน์! บ่งชี้ว่าสามารถใช้ค่าใด ๆ ที่มี ECMAScript ได้และการไม่ใช้ตรรกะที่ไม่ส่งคืนจะส่งคืนค่าบูลีน (จริง/เท็จ) ผู้ประกอบการจะแปลงตัวถูกดำเนินการเป็นค่าบูลีนก่อนแล้วก็ผกผัน
- - เทียบเท่ากับฟังก์ชั่นบูลีน ()
ชุดของกฎสำหรับฟังก์ชั่นการแปลงบูลีน ()
ค่าที่แปลงเป็นจริงจะถูกแปลงเป็นเท็จ
booleanttruefalse
สตริงสตริงที่ไม่ว่างเปล่า "" (สตริงว่าง)
ตัวเลขค่าตัวเลขที่ไม่ใช่ศูนย์ใด ๆ (รวมถึงอินฟินิตี้) 0 และ NAN
คัดค้านวัตถุใด ๆ
ไม่ได้กำหนดไม่ได้กำหนด
2. ตรรกะและ &&
มีตัวถูกดำเนินการสองตัวสำหรับตรรกะและมีสองตัวถูกดำเนินการ
ตรรกะและการดำเนินงานสามารถนำไปใช้กับตัวถูกดำเนินการทุกประเภทไม่ใช่แค่บูลีน เมื่อตัวถูกดำเนินการไม่ใช่บูลีนตรรกะและการดำเนินงานไม่จำเป็นต้องส่งคืนบูลีน ในเวลานี้มันเป็นไปตามกฎต่อไปนี้:
1. หากตัวถูกดำเนินการแรกเป็นวัตถุตัวถูกดำเนินการที่สองจะถูกส่งคืน;
2. หากตัวถูกดำเนินการที่สองเป็นวัตถุวัตถุจะถูกส่งคืนหากผลการประเมินผลของตัวถูกดำเนินการแรกเป็นจริง
3. หากผู้ให้บริการทั้งสองเป็นวัตถุตัวถูกดำเนินการที่สองจะถูกส่งคืน; ทำตามกฎข้อแรก
4. ถ้าตัวถูกดำเนินการเป็นโมฆะให้ส่งคืนโมฆะ;
5. ถ้าตัวถูกดำเนินการเป็นน่านให้คืนน่าน;
6. หากตัวถูกดำเนินการไม่ได้กำหนดจะไม่ได้กำหนดจะถูกส่งคืน
ตรรกะและการดำเนินงานเป็นการดำเนินการลัดวงจรนั่นคือถ้าตัวถูกดำเนินการแรกสามารถกำหนดผลลัพธ์ได้แล้วตัวถูกดำเนินการที่สองจะไม่ถูกประเมินอีกครั้ง (สามารถเข้าใจได้ว่าเป็นการดำเนินการส่งคืนภายในสองครั้ง) ดังนั้นเมื่อกฎข้อ 4, 5 และ 6 ข้อขัดแย้งจะมีการปฏิบัติตามหลักการดำเนินการลัดวงจร
การคัดลอกรหัสมีดังนี้:
var nul = null;
var na = nan;
การทดสอบ VAR;
ทดสอบ = na && nul;
document.write (ทดสอบ); // น่าน
การคัดลอกรหัสมีดังนี้:
var nul = null;
var na = nan;
การทดสอบ VAR;
ทดสอบ = nul && na;
document.write (ทดสอบ); //โมฆะ
3. ตรรกะหรือ ||
ตรรกะหรือมีสองตัวถูกดำเนินการ
ตรรกะหรือคล้ายกับตรรกะการดำเนินการสามารถนำไปใช้กับตัวถูกดำเนินการทุกประเภทไม่ใช่แค่บูลีน ในกรณีที่ตัวถูกดำเนินการไม่ใช่บูลีนตรรกะหรือการทำงานไม่จำเป็นต้องส่งคืนบูลีน ณ จุดนี้มันเป็นไปตามกฎต่อไปนี้:
1. หากตัวถูกดำเนินการแรกเป็นวัตถุตัวถูกดำเนินการแรกจะถูกส่งคืน;
2. หากผลลัพธ์ของตัวถูกดำเนินการแรกเป็นเท็จตัวถูกดำเนินการที่สองจะถูกส่งคืน;
3. หากผู้ให้บริการทั้งสองเป็นวัตถุตัวถูกดำเนินการแรกจะถูกส่งคืนตามกฎข้อแรก
4. ถ้าตัวถูกดำเนินการทั้งสองเป็นโมฆะให้ส่งคืนค่าโมฆะ;
5. ถ้าตัวถูกดำเนินการทั้งสองเป็นน่านให้กลับน่าน;
6. หากตัวถูกดำเนินการทั้งสองไม่ได้กำหนดจะไม่ได้กำหนดจะถูกส่งคืน
ตรรกะหรือการดำเนินการเป็นการดำเนินการลัดวงจรนั่นคือถ้าผลการดำเนินการแรกเป็นจริงแล้วตัวถูกดำเนินการที่สองจะไม่ถูกประเมินอีกครั้ง
เราสามารถใช้คุณสมบัติของตรรกะนี้หรือเพื่อหลีกเลี่ยงการกำหนดค่า NULL หรือค่าที่ไม่ได้กำหนดให้กับตัวแปร
ตัวอย่างเช่น: var myObject = firstObject || secondObject
หาก FirstObject ไม่เป็นโมฆะ FirstObject จะถูกกำหนดให้กับ MyObject มิฉะนั้นค่าของ SecondObject จะถูกกำหนดให้กับ MyObject
เนื้อหาข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน