Mikor kell nagybetűvel írni a JavaScript-állandókat

Számos JavaScript stílusú útmutató javasolja az állandó nevek nagybetűs írását. Személy szerint ritkán látom ezt a konvenciót ott használni, ahol azt gondoltam. Ez azért volt, mert az állandó definícióm kissé eltért. Úgy döntöttem, hogy ásni fogok egy kicsit, és kicsit jobban megismerem ezt a konvenciót.

Hogyan definiálhatjuk az „állandó” kifejezést?

A programozás során állandó ez, ami nem változik.

Ez egy olyan érték, amelyet a program a normál futtatás során nem módosíthat.

Tehát a JavaScript lehetővé teszi számunkra, hogy olyan értéket deklaráljunk, amely nem változtatható meg? Mielőtt erre válaszolunk, nézzük meg ennek a konvenciónak a gyökereit.

A nagybetűs írásmód C-ben gyökerezik

A C egy összeállított nyelv. Ez azt jelenti, hogy egy másik program futtatása előtt az összes kódot konvertálja gépi kódgá.

A JavaScript viszont értelmezett nyelv. Egy tolmács futás közben soronként olvassa el a kódot.

Az összeállítás és az értelmezés közötti különbség szerepet játszik abban, hogyan deklaráljuk az állandó értékeket C-ben.

C-ben deklarálhatok egy ilyen változót:

int hoursInDay = 24;

Vagy egy ilyen állandó:

#define hoursInDay 24

A második példát szimbolikus állandónak nevezzük . A szimbolikus állandók lehetnek karakterek, numerikus konstansok vagy karakterláncok. Ezeket primitív értékeknek is nevezzük. A JavaScript primitív értékei: karakterláncok, számok, logikai értékek, null, undefined, szimbólum (nem tévesztendő össze a szimbolikus konstansokkal) és nagy int.

Most nézzük át az összeállítást.

Az összeállítás előtt van egy előzetes fordítási szakasz. Itt az elő-fordító a szimbolikus állandók összes példányát lecseréli a megfelelő értékre. A fordító soha nem tudja, hogy a programozó írt hoursInDay. Csak a számot látja 24.

A nagybetűs írás segít a programozónak meglátni ezeket a valóban állandó értékeket.

#define HOURS_IN_DAY 24

A JavaScript konstansok különböznek a szimbolikus konstansoktól

Az ES6 előtt a legtöbb értéket változókban tároltuk, még azokat az értékeket is, amelyeket állandóan meg akart tartani.

A nagybetűs írás segített abban, hogy láthassuk azokat az értékeket, amelyekben állandóak akarunk maradni.

var HOURS_IN_DAY = 24; var hoursRemaining = currentHour - HOURS_IN_DAY; var MY_NAME = 'Brandon'; MY_NAME = ... // oops don't want to do this.

Az ES6 bevezette a deklarációt, const amely a legtisztább értelemben nem „állandó”.

Az ES6 hozzáadta a feltételeket constés leta különböző szándékú változók létrehozásának módjait.

Ezzel a két kifejezéssel azt gondolhatja, hogy mi:

  1. nem kell nagybetűket írni, mivel világosan láthatjuk, hogy mely változók maradnak változatlanok, vagy
  2. nagybetűket kellene tennünk, amivel kijelentjük const.

Definíció szerint constlétrehoz egy állandót, amely csak olvasható hivatkozás egy értékre. Ez nem azt jelenti, hogy az általa birtokolt érték megváltoztathatatlan. Csak azt mondja, hogy a változó azonosítója nem rendelhető újra.

Más szavakkal, egyes consthivatkozások megváltozhatnak.

const firstPerson = { favoriteNumber: 10, }; const secondPerson = firstPerson; console.log(secondPerson.favoriteNumber); //10 firstPerson.favoriteNumber +=1; console.log(secondPerson.favoriteNumber); //11

A fenti példa azt mutatja, hogy a deklaráció constnem biztosítja a változó megváltoztathatatlanságát.

constcsak megakadályozza, hogy megpróbáljuk átrendezni a változó nevét. Ez nem akadályozza meg az objektum tulajdonságának megváltozását. Ne feledje: az objektumok utólagos hivatkozások.

// "TypeError: Assignment to constant variable."secondPerson = 'something else'; const secondPerson = 'Me' secondPerson = 'something else';

Tehát a JavaScript használatához túl kell lépnünk pusztán egy constnyilatkozat keresésén . Két kérdést kell feltennünk annak megállapításához, hogy egy változó állandó-e:

  1. A változó értéke primitív?
  2. Szándékunkban áll a változó nevét ugyanazon az értéken tartani a programunk során?

Ha a válasz mindkettőre igen, akkor deklarálnunk kell a változót consta névvel , és nagybetűvel írhatjuk a nevet.

Figyelem, mondtam, hogy „lehet”. Ennek a konvenciónak a szelleme különböző nyelvekből származik, amelyeknek voltak állandó állandói. A JavaScript nem. Legalábbis a legtisztább értelemben. Lehet, hogy ezért látja ezt a konvenciót ritkábban, mint amire számíthat. Az Airbnb-nek nagy része van a stíluskalauzban, itt olvasható.

A legfontosabb elvitel , hogy felismerjük a konstans definiálását a JavaScript-ben, tartalmaznia kell a programozó szándékát.

Ráadásul nem minden nyelv egyezményének van értelme egy másik nyelven. Végül csak elképzelni tudom, hogy sok konvenciót használtak jóval azelőtt, hogy az IDE-k rendelkeztek volna a mai képességekkel. Meggyőződésem, hogy IDE-m örömmel mondja el, hogy tévedek. Sokat történik.

Köszönöm, hogy elolvasta!

woz

Kövess a Twitteren.

Megjegyzések

  • Kíváncsi lehet, miért nem használtam PIegyik példában sem. A rövidítések - különösen a kétbetűs rövidítések - hajlamosak vagy mindig nagybetűket írni, vagy egyezmények szerint mindig kisbetűket írnak elő.