জাভাস্ক্রিপ্ট কঠোর মডেল
- পূর্ববর্তী পৃষ্ঠা জেএস হোইস্টিং
- পরবর্তী পৃষ্ঠা জেএস থিস কীওয়ার্ড
"use strict";
জাভাস্ক্রিপ্ট কোডকে "কঠোর মডেল"-এর মধ্যে কার্যকর হওয়ার জন্য নির্দেশ দেয়。
"use strict" নির্দেশ
"use strict"
এটা JavaScript 1.8.5-এর একটি নতুন নির্দেশ (ECMAScript version 5)।
এটা একটি বাক্যমূলক ব্যক্তিবলী নয়, একটি টেক্সট এক্সপ্রেশন, পুরনো সংস্করণের জাভাস্ক্রিপ্ট এটা অবমূল্য করবে。
"use strict";
এর কার্য হল জাভাস্ক্রিপ্ট কোডকে "কঠোর মডেল"-এর মধ্যে কার্যকর হওয়ার নির্দেশ দেওয়া।
কঠোর মডেলের মধ্যে, আপনি যেমন, ঘোষণা হয়নি ভাস্কুলকে ব্যবহার করতে পারবেন না。
নিম্নলিখিত সংস্করণের ব্রাউজারগুলি কঠোর মডেলকে সমর্থন করে:
- সংস্করণ 10 পরবর্তী IE
- সংস্করণ 4 পরবর্তী Firefox
- সংস্করণ 13 পরবর্তী Chrome
- সংস্করণ 5.1 পরবর্তী Safari
- সংস্করণ 12 পরবর্তী Opera
কঠোর মডেল ঘোষণা
স্ক্রিপ্ট বা ফাংশনের শুরুতে "use strict";
কঠোর মডেল ঘোষণা করার জন্য
স্ক্রিপ্টের শুরুতে ঘোষণা করা হয়, যা সার্বজনীন অবলোকনের সম্পর্কে (স্ক্রিপ্টের সমস্ত কোড কঠোর মডেলের মধ্যে কার্যকর হবে):
উদাহরণ
"use strict"; x = 3.14; // এটা ত্রুটি সৃষ্টি করবে, কারণ x এখনও ঘোষণা হয়নি
উদাহরণ
"use strict"; myFunction(); function myFunction() { y = 3.14; // এটা ত্রুটি সৃষ্টি করবে, কারণ y এখনও ঘোষণা হয়নি }
ফাংশনের মধ্যে কঠোর মডেল ঘোষণা করে, যা স্থানীয় অবলোকনের সম্পর্কে (শুধুমাত্র ফাংশনের মধ্যে কোড কঠোর মডেলের মধ্যে কার্যকর হবে):
x = 3.14; // এটা ত্রুটি সৃষ্টি করবে না myFunction(); function myFunction() { "use strict"; y = 3.14; // এটা ত্রুটি সৃষ্টি করবে }
"use strict"; সিনট্যাক
কঠোর মডেলের সিনট্যাকটি আরও পুরানো সংস্করণের জাভাস্ক্রিপ্টের সাথে সমর্থিত হয়েছে。
জাভাস্ক্রিপ্ট প্রোগ্রামের সংখ্যাত্মক টেক্সট (যেমন 4+5) বা স্ট্রিং টেক্সট (\
সবই "use strict";
শুধুমাত্র যাঁরা তার অর্থ বোঝেন, তাঁদের কাছেই নতুন কম্পাইলারকে প্রভাব ফেলবে।
কেন স্ট্রিক্ট মোড ব্যবহার করা যায়?
স্ট্রিক্ট মোড আমাদের "নিরাপদ" জেভাস্ক্রিপ্ট লিখতে সহজ করে।
স্ট্রিক্ট মোড পূর্বে অনুমতিপ্রাপ্ত "খারাপ গ্রামার"-কে একটি ত্রুটি হিসাবে পরিবর্তন করে।
উদাহরণ হিসাবে, সাধারণ জেভাস্ক্রিপ্টে, ভ্যারিয়েবল নাম ভুল লিখলে নতুন গ্লোবাল ভ্যারিয়েবল তৈরি হবে। স্ট্রিক্ট মোডে, এটা ত্রুটি ফেলবে, যার ফলে নতুন গ্লোবাল ভ্যারিয়েবল অপসারণ হবে।
সাধারণ জেভাস্ক্রিপ্টে, অলিখিত বৈশিষ্ট্যকে মূল্য দিলে ডেভেলপারকে কোনো ত্রুটি ফেলবে না।
স্ট্রিক্ট মোডে, অলিখিত, শুধু পড়ার, অস্তিত্ব না থাকা বৈশিষ্ট্যকে অর্থাৎ অস্তিত্ব না থাকা ভ্যারিয়েবল বা অবজেক্টকে অর্থাৎ একটি ভ্যারিয়েবল বা অবজেক্টকে মূল্য দেওয়ার ক্ষেত্রে ত্রুটি ফেলবে।
স্ট্রিক্ট মোডের অনুমতিহীন বিষয়
ভ্যারিয়েবলকে ঘোষণা করা না কেন ব্যবহার করা যায় না:
"use strict"; x = 3.14; // এটা ত্রুটি ফেলবে
অবজেক্টও একটি ভ্যারিয়েবল
অবজেক্টকে না ঘোষণা করে ব্যবহার করা যায় না:
"use strict"; x = {p1:10, p2:20}; // এটা ত্রুটি ফেলবে
ভ্যারিয়েবল (বা অবজেক্ট) মুছে দেওয়া যায় না:
"use strict"; var x = 3.14; delete x; // এটা ত্রুটি ফেলবে
ফাংশনকে মুছে দেওয়া যায় না:
"use strict"; function x(p1, p2) {}; delete x; // এটা ত্রুটি ফেলবে
পুনরাবৃত্ত পারামিটারের নাম ব্যবহার করা যায় না:
"use strict"; function x(p1, p1) {}; // এটা ত্রুটি ফেলবে
অষ্টভিত্তিক সংখ্যাকে ব্যবহার করা যায় না:
"use strict"; var x = 010; // এটা ত্রুটি ফেলবে
এসকেপ চার্জ ব্যবহার করা যায় না:
"use strict"; var x = \010; // এটা ত্রুটি ফেলবে
শুধু পড়ার বৈশিষ্ট্যকে লিখা যায় না:
"use strict"; var obj = {}; Object.defineProperty(obj, "x", {value:0, writable:false}); obj.x = 3.14; // এটা ত্রুটি ফেলবে
শুধু পড়ার জন্য বৈশিষ্ট্যকে লিখা যায় না:
"use strict"; var obj = {get x() {return 0} }; obj.x = 3.14; // এটা ত্রুটি ফেলবে
অপমান্য বৈশিষ্ট্যকে মুছে দেওয়া যায় না:
"use strict"; delete Object.prototype; // এটা ত্রুটি ফেলবে
স্ট্রিং "eval"-কে বদলে ব্যবহার করা যায় না:
"use strict"; var eval = 3.14; // এটা ত্রুটি ফেলবে
স্ট্রিং "arguments"-কে বদলে ব্যবহার করা যায় না:
"use strict"; var arguments = 3.14; // 这将引发错误
var arguments = 3.14; // এটি ত্রুটি উঠাবে
with
"use strict"; বিকল্পগুলি অনুমোদিত নয়:
সুরক্ষার কারণে, with (Math){x = cos(2)}; // এটি ত্রুটি উঠাবে eval()
তার যে স্কোপে তা বিব্রজিত হয়:
"use strict"; eval ("var x = 2"); alert (x); // এটি ত্রুটি উঠাবে
ফাংশন f() এর মতো ফাংশন বিব্রজনে, this এর মান গ্লোবাল ওবজেক্ট।সতর্ক মোডে, এখন এটি undefined
。
ভবিষ্যতের সুরক্ষা
সতর্ক মোডে ভবিষ্যতের জন্য অর্থোপাত্ত কীওয়ার্ডগুলি ব্যবহার করা নয়।তারা হল:
- implements
- interface
- let
- package
- private
- protected
- public
- static
- yield
"use strict"; var public = 1500; // এটি ত্রুটি উঠাবে
সতর্কতা
"use strict"
ইনস্ট্রাকশনগুলি শুধুমাত্র স্ক্রিপ্ট বা ফাংশনেরশুরুপরিচিত
- পূর্ববর্তী পৃষ্ঠা জেএস হোইস্টিং
- পরবর্তী পৃষ্ঠা জেএস থিস কীওয়ার্ড