JavaScript Const
constকীওয়ার্ডটি ES6 (2015) এ চালু করা হয়েছিল।
constসাথে সংজ্ঞায়িত ভেরিয়েবল পুনরায় ঘোষণা করা যাবে নাconstএর সাথে সংজ্ঞায়িত ভেরিয়েবল পুনরায় বরাদ্দ করা যাবে নাconstসঙ্গে সংজ্ঞায়িত ভেরিয়েবল ব্লক সুযোগ আছেCannot be Reassigned
constকীওয়ার্ড দিয়ে সংজ্ঞায়িত একটি ভেরিয়েবল পুনরায় বরাদ্দ করা যাবে না:
Example: const cannot be reassigned
const PI = 3.141592653589793;
PI = 3.14; // ❌ This will give an error
PI = PI + 10; // ❌ This will also give an error
Must be Assigned
JavaScript constযখন তারা ঘোষণা করা হয় তখন ভেরিয়েবলকে অবশ্যই একটি মান বরাদ্দ করতে হবে:
✅ Correct
const PI = 3.14159265359;
মান পরিবর্তনশীল ঘোষণায় বরাদ্দ করা হয়
❌ Incorrect
const PI; // ❌ Error
PI = 3.14159265359;
পরিবর্তনশীল ঘোষণায় একটি মান বরাদ্দ করা হয় না
When to use JavaScript const?
সর্বদা একটি পরিবর্তনশীল যদি আপনি জানেন যে মানটি কখনই পরিবর্তন করা উচিত নয়constসঙ্গে ঘোষণা
আপনি যখন ঘোষণা করেনconstব্যবহার করুন:
Array
নতুন অ্যারে
Object
নতুন অবজেক্ট
Function
নতুন ফাংশন
RegExp
নতুন রেগুলার এক্সপ্রেশন
সর্বোত্তম অনুশীলন:
সর্বদা প্রথমconstব্যবহার করুন, এবং শুধুমাত্র যদি আপনাকে পরে পুনরায় বরাদ্দ করতে হয়letএ স্যুইচ করুনvari ব্যবহার করবেন না।
Constant Objects and Arrays
constকীওয়ার্ডটি কিছুটা ভুল বোঝাবুঝি হয়েছে।
এটি একটি নির্দিষ্ট মান সংজ্ঞায়িত করে না। এটি একটি মানের একটি ধ্রুবক রেফারেন্স সংজ্ঞায়িত করে।
| You can NOT: | But you CAN: |
|---|---|
| একটি ধ্রুবক মান পুনরায় বরাদ্দ করুন | একটি স্ট্যাটিক অ্যারের উপাদানগুলি প্রতিস্থাপন করুন |
| স্ট্যাটিক অ্যারে পুনরায় বরাদ্দ করুন | স্থির বস্তুর বৈশিষ্ট্য পরিবর্তন করুন |
| স্ট্যাটিক অবজেক্ট পুনরায় বরাদ্দ করুন | অ্যারেতে উপাদান যোগ করুন |
Constant Arrays
আপনি একটি স্ট্যাটিক অ্যারের উপাদান পরিবর্তন করতে পারেন:
Example: Modifying constant array
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota"; // ✅ Allowed
// You can add an element:
cars.push("Audi"); // ✅ Allowed
কিন্তু আপনি অ্যারে পুনরায় বরাদ্দ করতে পারবেন না:
Example: Cannot reassign constant array
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ❌ ERROR
বোঝা:
constঅ্যারে ভেরিয়েবল যা নির্দেশ করে তা পরিবর্তন করে না - এটি অ্যারেকে পরিবর্তন হতে বাধা দেয় না।
Constant Objects
আপনি একটি স্ট্যাটিক বস্তুর বৈশিষ্ট্য পরিবর্তন করতে পারেন:
Example: Modifying constant object
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red"; // ✅ Allowed
// You can add a property:
car.owner = "Johnson"; // ✅ Allowed
কিন্তু আপনি বস্তুটি পুনরায় বরাদ্দ করতে পারবেন না:
Example: Cannot reassign constant object
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // ❌ ERROR
Difference Between var, let and const
| Feature | var | let | const |
|---|---|---|---|
| Scope | No Block Scope | Block Scope | Block Scope |
| Redeclare | Yes | No | No |
| Reassign | Yes | Yes | No |
| Hoisted | Yes | No | No |
| Binds this | Yes | No | No |
What is Good?
letএবংconstব্লক সুযোগ রয়েছেletএবংconstপুনরায় ঘোষণা করা যাবে নাletএবংconstব্যবহারের আগে অবহিত করা আবশ্যকletএবংconst thisসাথে আবদ্ধ হয় নাletএবংconstউত্তোলন করা হয় নাWhat is Not Good?
varঘোষণা করার প্রয়োজন নেই (ডিফল্ট বিশ্বব্যাপী)varউত্তোলন করা হয়েছে (বিজ্ঞপ্তির আগে ব্যবহার করা যেতে পারে)var thisসাথে আবদ্ধ হয়Browser Support
letএবংconstইন্টারনেট এক্সপ্লোরার 11 বা পূর্ববর্তী সংস্করণে কীওয়ার্ড সমর্থিত নয়।
| Browser | Version | Release Date |
|---|---|---|
| Chrome | 49 | Mar, 2016 |
| Edge | 12 | Jul, 2015 |
| Firefox | 36 | Jan, 2015 |
| Safari | 11 | Sep, 2017 |
| Opera | 36 | Mar, 2016 |
Block Scope
constব্লক স্কোপ সম্পর্কে একটি পরিবর্তনশীল ঘোষণা করাletপছন্দ
Example: Block Scope with const
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
শেখা:
ব্লক স্কোপ সম্পর্কে আরও জানতে জাভাস্ক্রিপ্ট স্কোপ অধ্যায় পড়ুন।
Redeclaring Rules
একটি জাভাস্ক্রিপ্টvarএকটি ভেরিয়েবল পুনঃঘোষণা একটি প্রোগ্রামের যেকোনো জায়গায় অনুমোদিত:
Example: Allowed with var
var x = 2; // Allowed
var x = 3; // Allowed
x = 4; // Allowed
একই সুযোগে একজন থাকবেvarবাletপরিবর্তনশীলconstতাই পুনরায় ঘোষণা অনুমোদিত নয়:
Example: Not allowed to redeclare as const
var x = 2; // Allowed
const x = 2; // ❌ Not allowed
{
let x = 2; // Allowed
const x = 2; // ❌ Not allowed
}
{
const x = 2; // Allowed
const x = 2; // ❌ Not allowed
}
অন্য সুযোগে, বা অন্য মডিউলে,constএকটি পরিবর্তনশীল পুনঃঘোষণা এর সাথে অনুমোদিত:
Example: Allowed in different scopes
const x = 2; // Allowed
{
const x = 3; // Allowed (different block)
}
{
const x = 4; // Allowed (different block)
}
Hoisting
varএর সাথে সংজ্ঞায়িত ভেরিয়েবলগুলি উপরে উত্তোলন করা হয়েছে এবং যে কোনো সময় আরম্ভ করা যেতে পারে।
Example: var Hoisting
carName = "Volvo";
var carName; // ✅ Allowed (hoisted)
শেখা:
Hoisting সম্পর্কে আরও জানতে, JavaScript Hoisting অধ্যায় পড়ুন।
constএর সাথে সংজ্ঞায়িত ভেরিয়েবলগুলি উপরে উত্তোলন করা হয়েছে, কিন্তু আরম্ভ করা হয়নি।
Example: const Hoisting (Temporal Dead Zone)
alert(carName); // ❌ ReferenceError
const carName = "Volvo";
Temporal Dead Zone:
constভেরিয়েবলগুলি উত্তোলন করা হয়, কিন্তু "টেম্পোরাল ডেড জোন"-এ থাকে। ঘোষণার আগে এগুলি ব্যবহার করার চেষ্টা করা একটি রেফারেন্স ত্রুটির কারণ হবে৷