Sobes.tech
Junior

Mi az a nem deklarált (undeclared) változók?

sobes.tech MI

Válasz az MI-től

A nem deklarált változók JavaScript-ben olyan változók, amelyeket nem a var, let vagy const kulcsszavak segítségével deklaráltak, de értéket rendeltek hozzá.

// Egyértelmű deklaráció
let deklaráltVáltozó = "Én deklarált vagyok";

// Nem egyértelmű hozzárendelés (nem szigorú módban nem deklarált változót hoz létre)
// `'use strict'` módban ez ReferenceError hibát okoz
nemDeklaráltVáltozó = "Nincs deklarálva";

A nem deklarált változók viselkedése a kód végrehajtási módjától függ:

  • Nem szigorú mód: A nem deklarált változó értékének hozzárendelése globális változót hoz létre a Window objektumban (böngészők esetén). Ez rossz gyakorlatnak számít, mivel szennyezi a globális névteret és megnehezíti a hibakeresést.
  • Szigorú mód ('use strict'): A nem deklarált változóhoz való hozzárendelés ReferenceError hibát eredményez. Ez a viselkedés előnyösebb, mivel megakadályozza a véletlen globális változók létrehozását és elősegíti a kiszámíthatóbb kódot.

A nem deklarált változó létezésének ellenőrzése typeof segítségével történhet. Nem szigorú módban a nem deklarált változó típusa 'undefined' lesz, ugyanúgy, mint egy deklarált, de nem inicializált változóé.

let inicializáltDeNincsDefiniálva;
// console.log(typeof inicializáltDeNincsDefiniálva); // => 'undefined'

// Nem szigorú módban
// nemDeklaráltVáltozó = "Ellenőrzés";
// console.log(typeof nemDeklaráltVáltozó); // => 'undefined'

// A változó létezésének ellenőrzése mielőtt hozzáférünk
if (typeof potenciálisanNemDeklarált !== 'undefined') {
    // Kód a potenciálisanNemDeklarált változóval
}

A nem deklarált változók használata potenciális hibák forrása, és megnehezíti a kód karbantartását. Mindig ajánlott egyértelműen deklarálni a változókat let, const vagy var segítségével (bár a var sajátosságokkal rendelkezik, és a modern kódban az let és const a preferált). A szigorú mód ('use strict') használata alapértelmezett gyakorlat a hasonló problémák megelőzése érdekében.