คำนำ
ไม่กี่ปีที่ผ่านมาเมื่อ Spidermonkey ใช้โหมดที่เข้มงวดฉันได้เรียนรู้ว่าโหมดที่เข้มงวดจะปิดใช้งานการเขียนพื้นที่จำนวนเต็ม Octal เนื่องจากมีหลักฐานว่ามือใหม่บางตัวจะใช้ 0s นำ 0s เพื่อจัดหมายเลขในหลายแถวส่งผลให้ผลลัพธ์ที่ไม่คาดคิด:
var sum = 015 + // เทียบเท่ากับ 13 ในทศนิยมไม่ใช่ 15 197 + 001; // อย่างไรก็ตามมันคือ 1console.log (ผลรวม) // ผลรวมที่ได้รับจากการเพิ่มคือ 211 ไม่ใช่ 213 ตามที่มือใหม่คิด
อย่างไรก็ตามนักพัฒนาบางคนยังคงต้องการจำนวนเต็ม octal (โดยเฉพาะอย่างยิ่งผู้พัฒนาส่วนขยาย Mozilla และนักพัฒนา Node.js) และสิ่งที่พบบ่อยที่สุดคือเมื่อการประมวลผลไฟล์ (755, 644) ดังนั้น ES6 จึงได้เพิ่มวิธีการเขียนจำนวนเต็มแปดค่า เช่นเดียวกับ hexadecimal 0x หรือ 0x จำนวนเต็ม Octal ใหม่ใช้ 0o หรือ 0o เป็นตัวระบุชั้นนำตามด้วยอักขระตัวเลข octal หลายตัว (0 ถึง 7) วิธีการเขียนนี้จะไม่รบกวนมือใหม่อีกต่อไป:
var default_perms = 0o644; // ยังมีอยู่ในโหมดเข้มงวด
เป็นที่น่าสังเกตว่าการอ่านคำนำหน้า 0o นั้นแย่เกินไป (0 และตัวพิมพ์ใหญ่ o ดูคล้ายกันมากเกินไปและยากที่จะแยกแยะ) ฉันตั้งคำถามนี้เกี่ยวกับ Esdiscuss โดยหวังว่าจะปิดการใช้งานคำนำหน้าตัวพิมพ์ใหญ่ 0o อย่างไรก็ตามการตัดสินใจในปัจจุบันของ TC39 ยังคงเชื่อว่าความสอดคล้องควรมากกว่าการอ่าน (ความสอดคล้องหมายความว่าควรสอดคล้องกับ 0x และ 0b) ฉันคิดว่าการตัดสินใจครั้งนี้เป็นที่ถกเถียงกันอยู่และฉันขอแนะนำให้คุณไม่เคยใช้ตัวพิมพ์ใหญ่ 0o
นอกจากนี้นักพัฒนาบางคนยังต้องการวิธีการเขียนปริมาณพื้นผิวจำนวนเต็มไบนารีซึ่งไม่เคยได้รับการสนับสนุนจาก ECMASCript ES6 รองรับวิธีการเขียนนี้คล้ายกับ Octal และ Hexadecimal โดยใช้คำนำหน้า 0B หรือ 0B:
var flt_signbit = 0B10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
ปัจจุบัน Firefox Aurora ได้ใช้ไวยากรณ์ทั้งสองนี้ หากคุณเป็นนักผจญภัยมากขึ้นคุณสามารถใช้ Firefox ที่อัปเดตได้ทุกคืน
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะเป็นประโยชน์กับทุกคนในการเรียนรู้ ES6 หากคุณมีคำถามใด ๆ โปรดฝากข้อความเพื่อสื่อสาร