Sobes.tech
Junior

Недеclared (жарияланбаган) өзгөрмөлөр деген эмне?

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 менен ачык жарыялоо сунушталат (эки let жана const азыркы учурда кеңири колдонулат). Катуу режим ('use strict') мындай көйгөйлөрдү алдын алуу үчүн стандарттык практика болуп саналат.