স্বয়ংক্রিয় সেমিকোলন ইনসারশন (ASI) কী?
জাভাস্ক্রিপ্টের স্বয়ংক্রিয় সেমিকোলন ইনসারশন (ASI) হল একটি মেকানিজম যা কোডে অনুপস্থিত সেমিকোলন স্বয়ংক্রিয়ভাবে যোগ করে দেয়। নিচের স্টেটমেন্টগুলো ASI দ্বারা প্রভাবিত হয়:
খালি স্টেটমেন্ট var স্টেটমেন্ট এক্সপ্রেশন স্টেটমেন্ট do-while স্টেটমেন্ট continue স্টেটমেন্ট break স্টেটমেন্ট return স্টেটমেন্ট throw স্টেটমেন্ট
ASI-এর মূল নিয়মাবলী
নিম্নলিখিত শর্তাবলী অনুযায়ী সেমিকোলন স্বয়ংক্রিয়ভাবে যোগ হয়:
- পার্সিং ত্রুটি: যখন একটি স্ক্রিপ্ট বা মডিউল বাম থেকে ডানে পার্স করা হয়, যদি কোনো টোকেন গ্রামারের যেকোনো প্রোডাকশন অনুযায়ী অনুমোদিত না হয়, তবে নিচের শর্তগুলো পূরণ হলে সেমিকোলন যোগ করা হয়:
- অফেন্ডিং টোকেন '}': যদি সমস্যাসূচক টোকেন '}' হয়।
- পূর্ববর্তী টোকেন ')': যদি পূর্বের টোকেন ')' হয় এবং সেমিকোলন যোগ করলে এটি do-while স্টেটমেন্টের সমাপ্তিসূচক সেমিকোলন হিসেবে পার্স হয়।
- ইনপুট স্ট্রিমের শেষ: যদি টোকেন স্ট্রিমের শেষে পৌঁছানো হয় এবং পার্সার পুরো ECMAScript বা মডিউল পার্স করতে না পারে।
- প্রতিবন্ধিত প্রোডাকশন: যদি কোনো টোকেন গ্রামারের কিছু প্রোডাকশন অনুযায়ী অনুমোদিত হয়, কিন্তু প্রোডাকশনটি একটি 'রিস্ট্রিক্টেড প্রোডাকশন' এবং টোকেনটি এনোটেশনের সাথে সাথে একটি টার্মিনাল বা নন-টার্মিনালের প্রথম টোকেন হয়।