Sobes.tech
Junior

Ի՞նչ են անանուն (undeclared) փոփոխականները։

sobes.tech AI

Պատասխան AI-ից

JavaScript- ում անծանուցված փոփոխականները այն փոփոխականներն են, որոնք չեն հայտարարվել var, let կամ const բանալի բառերով, բայց նրանց նշանակվել է արժեք:

// Մասնակի հայտարարում
let declaredVariable = "Ես հայտարարեցի";

// Անհայտ նշանակում (ստեղծում է անծանուցված փոփոխական ոչ խիստ ռեժիմում)
// Խիստ ռեժիմում ('use strict') դա կհանգեցնի սխալի ReferenceError
undeclaredVariable = "Ես չեմ հայտարարեց";

Անծանուցված փոփոխականների վարքը կախված է կոդի կատարման ռեժիմից:

  • Անխիստ ռեժիմ: Անծանուցված փոփոխականի արժեքի նշանակումը ստեղծում է գլոբալ փոփոխական այդ անունով Window-ում (բրաուզերների համար): Սա վատ պրակտիկա է, քանի որ աղտոտում է գլոբալ տարածքը և բարդացնում է դետալոգը:
  • Խիստ ռեժիմ ('use strict'): Անծանուցված փոփոխականի արժեքի նշանակումը առաջացնում է ReferenceError սխալ: Սա նախընտրելի վարքագիծ է, որը կանխում է պատահական գլոբալ փոփոխականների ստեղծումը և նպաստում ավելի կանխատեսելի կոդի:

Տուգանելու համար անծանուցված փոփոխականը կարելի է օգտագործել typeof-ը: Անծանուցված փոփոխականը ոչ խիստ ռեժիմում կունենա 'undefined' տիպ, ինչպես նաև փոփոխականը, որը հայտարարված է, բայց չի ինիցիալիզացված:

let initializedButUndefined;
// console.log(typeof initializedButUndefined); // => 'undefined'

// Անխիստ ռեժիմում
// undeclaredVariable = "Ստուգում";
// console.log(typeof undeclaredVariable); // => 'undefined'

// Ստուգում փոփոխականի գոյության մասին
if (typeof potentiallyUndeclaredVariable !== 'undefined') {
    // Կոդ potentiallyUndeclaredVariable-ի հետ աշխատելու համար
}

Անծանուցված փոփոխականների օգտագործումը կարող է լինել հնարավոր սխալների աղբյուր և դժվարացնում է կոդի պահպանությունը: Ամենից հաճախ խորհուրդ է տրվում փոփոխականները հստակ հայտարարել let, const կամ var-ով (չնայած var-ը ունի իր առանձնահատկությունները և ժամանակակից կոդում ավելի հաճախ օգտագործվում են let և const): Խիստ ռեժիմի ('use strict') օգտագործումը ստանդարտ պրակտիկա է նման խնդիրների կանխարգելման համար։