বিষয়বস্তুতে চলুন

জাভাস্ক্রিপ্ট/স্ট্রিক্ট মোড

উইকিবই থেকে

টেমপ্লেট:Nav

স্ট্রিক্ট মোড (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) এটি সম্পূর্ণরূপে সমর্থিত।

বহিঃসংযোগ

[সম্পাদনা]

টেমপ্লেট:Nav