Junior
Ինչպես կարելի է հայտարարագրել փոփոխականներ JavaScript-ում: Նշեք այս մեթոդների տարբերությունները։
sobes.tech AI
Պատասխան AI-ից
JavaScript-ում փոփոխականները կարելի է հայտարարել երեք եղանակով՝ var, let, const։
Նշված տարբերությունները՝
| Տարբերություն | var |
let |
const |
|---|---|---|---|
| Տեսակետային տարածք | Ֆունկցիոնալ | Բլոկային | Բլոկային |
| Փոխարինում | Հնարավոր | Հնարավոր | Անհնարավոր |
| Hoisting | բարձրացնում է հայտարարությունը և ինիցիալիզացիան undefined-ին |
Բարձրացնում է հայտարարությունը, բայց ոչ ինիցիալիզացիան | Բարձրացնում է հայտարարությունը, բայց ոչ ինիցիալիզացիան |
Օրինակներ:
// var
function exampleVar() {
var x = 10; // Ֆունկցիոնալ տարածք
if (true) {
var x = 20; // Հնարավոր է վերագրում նույն ֆունկցիայում
console.log(x); // 20
}
console.log(x); // 20 (փոփոխական x-ը from if հասանելի է այստեղ)
}
console.log(x); // Խնդիր՝ ReferenceError: x չի սահմանված (x չի տեսանելի ֆունկցիայից դուրս)
// Hoisting var
console.log(a); // undefined
var a = 5;
console.log(a); // 5
// let
function exampleLet() {
let y = 10; // Բլոկային տարածք
if (true) {
let y = 20; // Հնարավոր չէ վերագրում նույն բլոկում
console.log(y); // 20 (այլ փոփոխական y)
}
console.log(y); // 10 (փոփոխական y-ը դուրս բլոկից)
}
console.log(y); // Խնդիր՝ ReferenceError: y չի սահմանված
// Hoisting let
// console.log(b); // Խնդիր՝ ReferenceError: Չի կարող հասնել 'b'-ին նախքան սկզբնավորումը
let b = 5;
console.log(b); // 5
// const
function exampleConst() {
const z = 10; // Բլոկային տարածք
// z = 20; // Խնդիր՝ TypeError: Կոնստանտ փոփոխականի վերագրում։ (Վերագրում հնարավոր չէ)
if (true) {
const z = 20; // Հնարավոր չէ վերագրում նույն բլոկում
console.log(z); // 20 (այլ փոփոխական z)
}
console.log(z); // 10 (փոփոխական z-ը դուրս բլոկից)
}
console.log(z); // Խնդիր՝ ReferenceError: z չի սահմանված
// Hoisting const
// console.log(c); // Խնդիր՝ ReferenceError: Չի կարող հասնել 'c'-ին նախքան սկզբնավորումը
const c = 5;
console.log(c); // 5
// Օբյեկտների և զանգվածների համար, որոնք հայտարարում են `const`-ով, հնարավոր է փոփոխել պարունակությունը
const obj = { անուն: 'Թեստ' };
obj.անուն = 'Նոր Թեստ'; // Հնարավոր
// obj = { անուն: 'Այլ Թեստ' }; // Խնդիր