জাভাস্ক্রিপ্ট/স্ট্রিক্ট মোড
অবয়ব
স্ট্রিক্ট মোড (Strict mode)
[সম্পাদনা]জাভাস্ক্রিপ্টে কোডের শুরুতে—অন্য যেকোনো স্টেটমেন্টের আগে—`"use strict";` নির্দেশটি যুক্ত করে স্ট্রিক্ট মোড সক্রিয় করা যায়:
// ডামি কমেন্ট
"use strict";
let myvar = 4;
এটি পুরো স্ক্রিপ্টের পরিবর্তে কেবল নির্দিষ্ট কোনো ফাংশনের ভেতরেও সক্রিয় করা সম্ভব:
function myfun(){
"use strict";
const myvar = 6;
}
> বিশেষ দ্রষ্টব্য: আধুনিক জাভাস্ক্রিপ্টের মডিউল (ES Modules) এবং ক্লাস (Classes)-এর ক্ষেত্রে স্ট্রিক্ট মোড স্বয়ংক্রিয়ভাবেই সক্রিয় থাকে। তাই সেগুলোতে আলাদাভাবে `"use strict";` লেখার প্রয়োজন হয় না।
স্ট্রিক্ট মোড মূলত নিচের বিষয়গুলো নিশ্চিত করে:
- বাধ্যতামূলক ভেরিয়েবল ঘোষণা: নতুন যেকোনো ভেরিয়েবল অবশ্যই `let`, `const` অথবা `var` কিওয়ার্ড দিয়ে ঘোষণা করতে হবে। অন্যথায় কোডটি `ReferenceError` দেখাবে। এর ফলে অনিচ্ছাকৃতভাবে গ্লোবাল ভেরিয়েবল তৈরি হওয়ার সুযোগ থাকে না।
- নীরব ত্রুটি প্রতিরোধ (Strict Errors): পরিবর্তনযোগ্য নয় এমন (non-writable) প্রোপার্টিতে কিছু লেখার চেষ্টা করলে কিংবা মুছে ফেলা যায় না এমন প্রোপার্টি ডিলিট করার চেষ্টা করলে, স্ক্রিপ্টটি নীরবে ব্যর্থ না হয়ে সরাসরি এরর (Error) প্রদর্শন করবে।
- নিরাপদ `this` বাইন্ডিং: সাধারণ ফাংশন কলের ক্ষেত্রে `this`-এর মান স্বয়ংক্রিয়ভাবে গ্লোবাল অবজেক্ট (যেমন: ব্রাউজারে `window`) না হয়ে `undefined` হিসেবে থাকে।
- অক্টাল সংখ্যার নিষেধাজ্ঞা: কোডে অক্টাল সংখ্যা (যেমন: `010`) ব্যবহার করা নিষিদ্ধ।
- ডুপ্লিকেট প্যারামিটার বর্জন: কোনো ফাংশনের প্যারামিটারে একই নামের একাধিক আর্গুমেন্ট বা প্রোপার্টি ব্যবহার করা যাবে না।
স্ট্রিক্ট মোডটি জাভাস্ক্রিপ্ট ১.৮.৫ (অর্থাৎ ECMAScript সংস্করণ ৫) থেকে যুক্ত করা হয়েছে। বর্তমানে সব আধুনিক ব্রাউজার ও রানটাইম এনভায়রনমেন্টে (যেমন: Node.js) এটি সম্পূর্ণরূপে সমর্থিত।
বহিঃসংযোগ
[সম্পাদনা]- স্ট্রিক্ট মোড, developer.mozilla.org
- জাভাস্ক্রিপ্ট 'Use Strict', w3schools.com
- স্ট্রিক্ট মোড (জাভাস্ক্রিপ্ট), msdn.microsoft.com