JavaSzkriptváltozó: Deklaráció, érték hozzárendelése példával
⚡ Okos összefoglaló
JavaA szkriptváltozók olyan értékeket tárolnak, mint a nevek és számok, vagy egy kifejezés eredménye. Ha egyet a var, let vagy const paraméterrel deklarálunk, akkor lefoglalunk egy elnevezett slotot, amelyet a szkript többi része olvashat és frissíthet.
A változókat értékek (név = „John”) vagy kifejezések (összeg = x + y) tárolására használjuk. Minden érték, amit egy szkript későbbre tart – egy felhasználónév, egy futó összeg, egy igen/nem jelző – egy változóban található, így ezek megfelelő deklarálása és elnevezése az első elsajátítandó készség. JavaForgatókönyv.
Változók deklarálása JavaForgatókönyv
Egy változó használata előtt először deklarálni kell azt. A var kulcsszóval deklarálható egy változó, például így:
var name;
Maga a deklaráció létrehozza a nevet, semmi mást. Ezen a ponton a változó létezik, de a speciális értéket definiálatlanul tartja, mivel még nem adtunk hozzá értéket.
⚠️ Verzió megjegyzés: A var az eredeti deklarációs kulcsszó, és továbbra is minden böngészőben fut. ES6 (2015) hozzáadva hadd és a const, melyek a modern kulcsszavak JavaSzkriptek használata. Mindkettőt összehasonlítjuk a var változóval ezen az oldalon lejjebb.
Rendeljen értéket a változóhoz
A változóhoz értéket rendelhet a változó deklarálása közben vagy a változó deklarálása után.
var name = "John";
OR
var name; name = "John";
Mindkét forma ugyanazzal az eredménnyel végződik. Az egyetlen egyenlőségjel a értékadó operátor: a jobb oldali értéket átmásolja a bal oldali változóba. Ez nem egyenlőségvizsgálat, amelyet == vagy === írunk, és a következőbe tartozik: feltételes állítások.
Változók elnevezése
Bár a változókat tetszés szerint elnevezheted, jó programozási gyakorlat, ha leíró és értelmes neveket adsz nekik. Továbbá, a változóneveknek betűvel kell kezdődniük, és kis- és nagybetűérzékenyek. Ezért a diáknév és a diákNév változók különböznek, mivel a névben az n betű különböző (n és N).
Négy szabály dönti el, hogy egy név egyáltalán legális-e:
- Az első karakternek betűnek, dollárjelnek vagy aláhúzásjelnek kell lennie – soha nem számjegynek.
- Az első karakter után betűk, számjegyek, dollárjelek és aláhúzásjelek is megengedettek.
- Szóközök nem engedélyezettek, ezért a kétszavas ötleteket studentName-ként egyesítjük, ahelyett, hogy két szóként hagynánk el őket.
- A foglalt szavak, mint például a var, let, const, class és return, nem használhatók fel újra névként.
Megállapodás szerint JavaA szkriptnevek camelCase karakterláncot használnak, tehát az első szó kisbetűs, és minden további szó nagybetűvel kezdődik: firstName, totalPrice, isLoggedIn.
Az alábbi szkript két változót deklarál, alkalmazza rájuk az öt aritmetikai operátort, és kiírja az eredményeket az oldalra. Próbáld ki te is:
<html>
<head>
<title>Variables!!!</title>
<script type="text/javascript">
var one = 22;
var two = 3;
var add = one + two;
var minus = one - two;
var multiply = one * two;
var divide = one/two;
document.write("First No: = " + one + "<br />Second No: = " + two + " <br />");
document.write(one + " + " + two + " = " + add + "<br/>");
document.write(one + " - " + two + " = " + minus + "<br/>");
document.write(one + " * " + two + " = " + multiply + "<br/>");
document.write(one + " / " + two + " = " + divide + "<br/>");
</script>
</head>
<body>
</body>
</html>
var vs let vs const Modernben JavaForgatókönyv
Csak a var létezett, amikor JavaA szkriptet először megírták, és két olyan tulajdonsággal rendelkezik, ami meglepi a kezdőket: csendben újradeklarálható, és figyelmen kívül hagyja a blokkhatárokat. A let és a const függvényeket mindkettő kijavítására adtuk hozzá. Az alábbi táblázat egymás mellett mutatja a három kulcsszót.
| Viselkedés | volt | hadd | const |
|---|---|---|---|
| Kör | Teljes függvény | Befoglaló blokk | Befoglaló blokk |
| Újraosztható | Igen | Igen | Nem |
| Újra deklarálható ugyanabban a hatókörben | Igen | Nem | Nem |
| A deklarációs sorban kötelező érték | Nem | Nem | Igen |
| Olvassa el a nyilatkozata előtt | Visszaadja a nem definiált értékeket | ReferenceError | ReferenceError |
Egy egyszerű szokás szinte minden esetre megoldást kínál: nyúlj a const először is, válts át hadd abban a pillanatban, amikor egy értéknek valóban meg kell változnia, például egy számlálónak az egyikben JavaSzkriptciklusok, és a var értéket a régi kód olvasásához kell megtartani az új kód írása helyett.
Változó hatókör és emelés JavaForgatókönyv
A hatókör határozza meg, hogy egy szkript mely részei láthatják a változót. A var deklaráció az azt tartalmazó függvényhez tartozik, így a függvényen belüli if vagy for blokkokat kihagyja. A let vagy const deklaráció a zárójelpárhoz tartozik, amelyben található, és eltűnik azokon kívül.
function demo() { if (true) { var wide = "visible throughout demo()"; let narrow = "visible only inside these braces"; } console.log(wide); console.log(narrow); }
Az első console.log kiírja a saját karakterláncát. A második egy ReferenceError hibát dob, mivel a narrow már nem létezik az if blokk vége után.
hoisting a történet második fele. JavaA szkript minden deklarációt regisztrál egy hatókörben, mielőtt lefuttatná az adott hatókör egyetlen sorát is. A var név regisztrálva van és undefined értékre van állítva, így a korai beolvasása megengedett, de haszontalan. A let vagy const név érték nélkül van regisztrálva, és a blokk teteje és a deklarációs sor közötti rést a következőnek nevezzük: időbeli holt zóna.
console.log(a); var a = 1; console.log(b); let b = 2;
Az első sor definiálatlanul íródik ki. A harmadik sor a „Cannot access 'b' before inicialization” hibával áll meg – ez a hiba teszi a let függvényt biztonságosabbá a var függvénynél, mivel az a valódi hibára mutat rá, ahelyett, hogy elrejtené azt.
Gyakori hibák a deklarálás során JavaScript Változók
A konzolon megjelenő üzenetek nagy részét, amiket a kezdők látnak a változók tanulásakor, öt üzenet teszi ki. Mindegyik egy konkrét okot nevez meg, így a javítás általában egyetlen sorban történik.
| Konzolüzenet | Okoz | Rögzít |
|---|---|---|
| Szintaxishiba: Az „x” azonosítót már deklarálták | A let vagy const függvényt kétszer használják ugyanarra a névre egy blokkon belül | Használja újra a meglévő változót, vagy nevezze át a másodikat |
| TypeError: Hozzárendelés állandó változóhoz | Egy konstans új értéket kapott | Deklaráld let paranccsal, ha az értéknek változnia kell |
| ReferenceError: Az 'x' nem érhető el inicializálás előtt. | Egy let vagy const értéket olvastunk le az időbeli holtzónán belül. | Vigye az olvasást a deklarációs sor alá |
| Referenciahiba: az x nincs definiálva | A nevet soha nem mondták ki, vagy hibásan írták le. | Jelentsd ki, vagy javítsd ki a helyesírást és a kis- és nagybetűk használatát |
| „undefined” jelenik meg ott, ahol egy értéket vártak | A változót deklarálták, de soha nem érték el | Érték hozzárendelése az első olvasás előtt |
A „use strict” paranccsal a fájl elejére a negyedik eset csendes verzióját – egy soha nem deklarált névhez való hozzárendelést – látható hibává alakítja, ezért minden új szkriptben szerepel. Ugyanezek a változószabályok változatlanul átkerülnek a következőbe is: tömbök, objektumok, és a következőhöz írt szerveroldali kód node.js.
