সরল হতে দিন।
তারা ভিন্ন ধরনের. কোডের মন্তব্যগুলি দেখুন, যা প্রতিটি ক্ষেত্রে ব্যাখ্যা করবে।
Const
- এটি হ'ল ব্লক স্কোপ ভেরিয়েবলের মতো let
, কোন মানটি পুনরায় ঘোষণা করতে পারে না, পুনরায় ঘোষিত হয়।
এর মানে
{
const val = 10; // you can not access it outside this block, block scope variable
}
console.log(val); // undefined because it is block scope
const constvalue = 1;
constvalue = 2; // will give error as we are re-assigning the value;
const obj = { a:1 , b:2};
obj.a = 3;
obj.c = 4;
console.log(obj); // obj = {a:3,b:2,c:4} we are not assigning the value of identifier we can
// change the object properties, const applied only on value, not with properties
obj = {x:1}; // error you are re-assigning the value of constant obj
obj.a = 2 ; // you can add, delete element of object
সম্পূর্ণ বোঝাপড়াটি হ'ল কনস্টটি ব্লক স্কোপ এবং এর মানটি পুনরায় বরাদ্দ করা হয় না।
Object.freeze
:
অবজেক্টের মূলের বৈশিষ্ট্যগুলি অপরিবর্তনীয়, এছাড়াও আমরা আরও বেশি বৈশিষ্ট্য যুক্ত করতে এবং মুছতে পারি না তবে আমরা পুরো বস্তুকে আবার সাইন করতে পারি।
var x = Object.freeze({data:1,
name:{
firstname:"hero", lastname:"nolast"
}
});
x.data = 12; // the object properties can not be change but in const you can do
x.firstname ="adasd"; // you can not add new properties to object but in const you can do
x.name.firstname = "dashdjkha"; // The nested value are changeable
//The thing you can do in Object.freeze but not in const
x = { a: 1}; // you can reassign the object when it is Object.freeze but const its not allowed
// একটি জিনিস যা উভয়ের মধ্যে একই রকম, নেস্টেড অবজেক্টটি পরিবর্তনযোগ্য
const obj1 = {nested :{a:10}};
var obj2 = Object.freeze({nested :{a:10}});
obj1.nested.a = 20; // both statement works
obj2.nested.a = 20;
ধন্যবাদ।