Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กฎสำหรับการแทรกอัฒภาคอัตโนมัติของ JavaScript (ASI) มีอะไรบ้าง


การแทรกอัฒภาคอัตโนมัติของ JavaScript (ASI) คือการแทรกอัฒภาคที่ขาดหายไป ข้อความต่อไปนี้ได้รับผลกระทบจากการแทรกอัฒภาคอัตโนมัติ -

empty statement
var statement
expression statement
do-while statement
continue statement
break statement
return statement
 throw statement

กฎอยู่ในข้อกำหนดดังต่อไปนี้ -

  • เมื่อแยกวิเคราะห์สคริปต์หรือโมดูลจากซ้ายไปขวา:พบโทเค็นที่ไม่อนุญาตโดยการผลิตไวยากรณ์ใดๆ เครื่องหมายอัฒภาคจะถูกแทรกโดยอัตโนมัติก่อนโทเค็นที่ละเมิดต่อเมื่อมีสิ่งใดสิ่งหนึ่งต่อไปนี้ เงื่อนไขกลายเป็นจริง -
  • โทเค็นที่ละเมิดคือ }.
  • โทเค็นก่อนหน้าคือ ) จากนั้นเครื่องหมายอัฒภาคที่แทรกจะถูกแยกวิเคราะห์เป็นเครื่องหมายอัฒภาคที่สิ้นสุดของคำสั่ง do-while (13.7.2)
  • พบจุดสิ้นสุดของอินพุตสตรีมของโทเค็น ดังนั้น parser จึงไม่สามารถแยกวิเคราะห์สตรีมโทเค็นอินพุตเป็น ECMAScript หรือโมดูลที่สมบูรณ์หนึ่งรายการ จากนั้นเครื่องหมายอัฒภาคจะถูกแทรกโดยอัตโนมัติ
  • พบโทเค็นที่ได้รับอนุญาตโดยการผลิตไวยากรณ์บางส่วน แต่การผลิตเป็นการผลิตที่จำกัด และโทเค็นจะเป็นโทเค็นแรกสำหรับเทอร์มินัลหรือไม่ใช่เทอร์มินัลทันทีตามคำอธิบายประกอบ