JavaKomentosarjamuuttuja: Ilmoita, anna arvo esimerkillä

⚡ Älykäs yhteenveto

JavaSkriptimuuttujat tallentavat arvoja, kuten nimiä ja numeroita, tai lausekkeen tuloksen. Muuttujan määrittäminen var-, let- tai const-muuttujalla varaa nimetyn paikan, jonka muu skripti voi lukea ja päivittää.

  • 🔘 ilmoitus: Avainsanat var, let tai const luovat nimen ennen kuin mikään koodirivi lukee tai kirjoittaa sitä.
  • ☑️ Tehtävä: Yksi yhtäsuuruusmerkki kopioi arvon muuttujaan, joko deklarointirivillä tai myöhemmin.
  • ✅ Nimeäminen: Nimet alkavat kirjaimella, dollarimerkillä tai alaviivalla, ja isot ja pienet kirjaimet lasketaan eri arvoiksi.
  • 🧪 Nykyaikaiset avainsanat: const sopii arvoille, jotka eivät koskaan muutu, let sopii arvoille, jotka muuttuvat, ja var säilyy pääasiassa vanhoissa skripteissä.
  • 🛠️ Soveltamisala: let ja const pysyvät sulkevien aaltosulkeidensa sisällä, kun taas var saavuttaa koko ympäröivän funktion.
  • 📌 Yleisiä vikoja: Vakion uudelleenmäärittäminen, let-käskyn lukeminen liian aikaisin tai avainsanan poisjättäminen aiheuttavat kukin erillisen virheen.

Julistamalla JavaSkriptimuuttuja ja sille arvon määrittäminen

Muuttujia käytetään arvojen (nimi = ”Matti”) tai lausekkeiden (summa = x + y) tallentamiseen. Jokainen skriptin myöhempää käyttöä varten säilyttämä arvo – käyttäjätunnus, juokseva summa, kyllä- tai ei-lippu – sijaitsee muuttujassa, joten niiden hyvä määrittäminen ja nimeäminen on ensimmäinen taito, joka on opittava. JavaKäsikirjoitus.

Ilmoita muuttujat sisään JavaKäsikirjoitus

Ennen muuttujan käyttöä sinun on ensin määriteltävä se. Sinun on käytettävä avainsanaa var määrittääksesi muuttujan seuraavasti:

var name;

Pelkkä määrittely luo nimen eikä mitään muuta. Tässä vaiheessa muuttuja on olemassa, mutta sen erikoisarvo on määrittelemätön, koska siihen ei ole vielä syötetty arvoa.

⚠️ Versiohuomautus: var on alkuperäinen deklarointiavainsana ja se toimii edelleen jokaisessa selaimessa. ES6 (2015) lisätty antaa ja const, jotka ovat avainsanoja moderni JavaSkriptien käyttötarkoitukset. Molempia verrataan muuttujaan var myöhemmin tällä sivulla.

Määritä muuttujalle arvo

Voit antaa muuttujalle arvon joko muuttujan ilmoittamisen aikana tai muuttujan ilmoittamisen jälkeen.

var name = "John";

OR

var name;

name = "John";

Molemmat lomakkeet päättyvät samaan tulokseen. Yksi yhtäsuuruusmerkki on sijoitusoperaattori: se kopioi oikealla olevan arvon vasemmalla olevaan muuttujaan. Se ei ole yhtäsuuruustesti, joka kirjoitetaan == tai === ja kuuluu muuttujaan ehdolliset lausunnot.

Muuttujien nimeäminen

Vaikka voit nimetä muuttujat haluamallasi tavalla, on hyvä ohjelmointikäytäntö antaa muuttujille kuvaavat ja merkitykselliset nimet. Lisäksi muuttujien nimien tulisi alkaa kirjaimella, ja ne ovat kirjainkokoherkkiä. Tästä syystä muuttujat opiskelijannimi ja opiskelijanNimi ovat erilaisia, koska nimessä oleva n-kirjain on eri (n ja N).

Neljä sääntöä ratkaisee, onko nimi ylipäätään laillinen:

  1. Ensimmäisen merkin on oltava kirjain, dollarimerkki tai alaviiva – ei koskaan numero.
  2. Ensimmäisen merkin jälkeen sallitaan kirjaimet, numerot, dollarimerkit ja alaviivat.
  3. Välilyöntejä ei sallita, minkä vuoksi kaksisanainen idea yhdistetään nimellä studentName sen sijaan, että se jätettäisiin kahdeksi sanaksi.
  4. Varattuja sanoja, kuten var, let, const, class ja return, ei voi käyttää uudelleen niminä.

Sopimuksen mukaan JavaSkriptien nimissä käytetään camelCase-alkuperäiskansia, joten ensimmäinen sana on pieni ja jokainen seuraava sana alkaa isolla kirjaimella: firstName, totalPrice, isLoggedIn.

Alla oleva komentosarja määrittää kaksi muuttujaa, soveltaa niihin viittä aritmeettista operaattoria ja kirjoittaa jokaisen tuloksen sivulle. Kokeile tätä itse:

<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 Modernissa JavaKäsikirjoitus

Vain var oli olemassa, kun JavaSkripti kirjoitettiin alun perin, ja sillä on kaksi aloittelijoita yllättävää ominaisuutta: se voidaan julistaa uudelleen hiljaisesti, ja se jättää lohkarajat huomiotta. let ja const lisättiin korjaamaan molemmat. Alla olevassa taulukossa kolme avainsanaa on rinnakkain.

Käyttäytyminen oli antaa const
Laajuus Koko funktio Ympäröivä lohko Ympäröivä lohko
Voidaan siirtää Kyllä Kyllä Ei
Voidaan ilmoittaa uudelleen samassa soveltamisalassa Kyllä Ei Ei
Ilmoitusrivillä vaadittava arvo Ei Ei Kyllä
Lue ennen sen julistamista Palauttaa määrittelemättömän Viitevirhe Viitevirhe

Yksinkertainen tapa sopii lähes kaikkiin tilanteisiin: tartu const vaihda ensin antaa hetkellä, jolloin arvon on todella muututtava, kuten laskuri jonkin sisällä JavaSkriptisilmukatja säilytä muuttuja vanhan koodin lukemista varten uuden koodin kirjoittamisen sijaan.

Muuttuva laajuus ja nosto JavaKäsikirjoitus

Soveltamisala määrittää, mitkä skriptin osat voivat nähdä muuttujan. var-deklaraatio kuuluu funktiolle, joka sen sisältää, joten se ohittaa kaikki if- tai for-lohkot kyseisen funktion sisällä. let- tai const-deklaraatio kuuluu aaltosulkeihin, joiden sisällä se sijaitsee, ja katoaa niiden ulkopuolelle.

function demo() {
  if (true) {
    var wide = "visible throughout demo()";
    let narrow = "visible only inside these braces";
  }
  console.log(wide);
  console.log(narrow);
}

Ensimmäinen console.log tulostaa merkkijononsa. Toinen heittää ReferenceError-virheen, koska narrow-lauseketta ei enää ole olemassa if-lohkon päätyttyä.

hoisting on tarinan toinen puolisko. JavaSkripti rekisteröi jokaisen laajuusalueen deklaroinnin ennen kuin se suorittaa yhtäkään riviä kyseisestä laajuusalueesta. Muuttujan (Vuor) nimi rekisteröidään ja asetetaan arvoon undefined, joten sen lukeminen varhain on sallittua, mutta hyödytöntä. Let- tai const-nimi rekisteröidään ilman arvoa, ja lohkon yläosan ja deklarointirivin välistä rakoa kutsutaan ajallinen kuollut alue.

console.log(a);
var a = 1;

console.log(b);
let b = 2;

Ensimmäinen rivi tulostaa arvon määrittelemätön. Kolmas rivi päättyy virheeseen ”Cannot access 'b' before initialization” – virhe, joka tekee let-muuttujasta turvallisemman kuin var-muuttujasta, koska se viittaa varsinaiseen virheeseen sen piilottamisen sijaan.

Yleisiä virheitä ilmoitettaessa JavaKomentosarjan muuttujat

Viisi viestiä muodostavat suurimman osan konsolin tulosteesta, jonka aloittelijat näkevät muuttujien oppimisen aikana. Jokainen viesti nimeää tietyn syyn, joten korjaus on yleensä yhdellä rivillä.

Konsoliviesti Aiheuttaa Korjata
Syntaksivirhe: Tunniste 'x' on jo määritetty let- tai const-funktiota käytetään kahdesti samalle nimelle samassa lohkossa Käytä uudelleen olemassa olevaa muuttujaa tai nimeä toinen uudelleen
TypeError: Määritys vakiomuuttujaan Vakiolle annettiin uusi arvo Määrittele se let-komennolla, jos arvon on muututtava
ReferenceError: Ei voida käyttää 'x':ää ennen alustusta Let- tai const-arvo luettiin ajallisen kuolleen alueen sisäpuolelta. Siirrä lukukomento deklarointirivin alapuolelle
Viitevirhe: x:ää ei ole määritelty Nimeä ei koskaan mainittu, tai se oli kirjoitettu väärin Ilmoita se tai korjaa oikeinkirjoitus ja kirjainkoko
Määrittelemätön näkyy odotetun arvon kohdalla Muuttuja on ilmoitettu, mutta sitä ei koskaan asetettu Määritä arvo ennen ensimmäistä lukukertaa

Tiedoston alkuun lisäämällä ”use strict” muuttuu neljännen tapauksen hiljaisesta versiosta – nimelle, jota ei koskaan ilmoitettu – näkyväksi virheeksi, minkä vuoksi se kuuluu jokaiseen uuteen komentosarjaan. Samat muuttujasäännöt siirtyvät muuttumattomina myös taulukot, esineetja palvelinpuolen koodia, joka on kirjoitettu Node.js.

UKK

Mikä tahansa heistä. JavaSkripti tyypitetään dynaamisesti, joten yksi muuttuja voi sisältää ensin numeron, sitten merkkijonon ja lopuksi objektin. Määrittely varaa nimen, ei tyyppiä. Käytä typeof-muuttujaa tarkistaaksesi, mitä muuttuja sisältää milläkin hetkellä.

JavaSkripti luo implisiittisen globaalin muuttujan, jonka muu koodi voi vahingossa korvata. Jos tiedoston alkuun lisätään ”use strict”, sama rivi muuttuu ReferenceError-virheeksi, joten virhe ilmestyy välittömästi sen sijaan, että se leviäisi huomaamattomasti.

undefined tarkoittaa, että muuttuja on deklaroitu, mutta sille ei koskaan annettu arvoa. null on arvo, joka annetaan tarkoituksella tarkoittamaan "ei mitään tässä". Molemmat ovat epätosia, mutta typeof undefined palauttaa arvon "undefined", kun taas typeof null palauttaa arvon "object".

Plus-operaattori yhdistää tekstin aina, kun jompikumpi puoli on merkkijono, joten 22 + ”3” tuottaa ”223”. Muunna ensin Number():lla tai parseInt():llä, kun on tarkoitus tehdä aritmeettisia määrityksiä. Subtractionilla ei ole tekstimerkitystä, joten ”3” − 1 palauttaa oikein arvon 2.

Kyllä. const lukitsee sidonnan, ei arvoa, joten const-objektin ja const-taulukon elementtien ominaisuudet voivat silti muuttua. Muuttujan uudelleenmäärittäminen aiheuttaa TypeError-virheen. Käytä Object.freeze()-funktiota, kun sisällön on pysyttävä kiinteänä.

Nykyaikaisiin editoreihin sisäänrakennetut tekoälyavustajat ehdottavat avainsanaa ja kuvaavaa nimeä ympäröivästä kontekstista, merkitsevät muuttujan, jonka tulisi olla vakio, ja nimeävät jokaisen käyttötarkoituksen uudelleen yhdessä vaiheessa. Käsittele jokaista ehdotusta luonnoksena ja varmista, että laajuus on oikea.

Usein kyllä. Lentoperämies lukee lähellä olevaa koodia ja tarjoaa ympäröivään tyyliin sopivia nimiä, mikä auttaa korvaamaan paikkamerkkejä, kuten x tai temp. RevKatso jokaista nimeä, koska sujuva ehdotus voi silti kuvailla väärää asiaa.

console.log() tulostaa nykyisen arvon selainkonsoliin. Tarkempaa tarkastelua varten aseta keskeytyskohta DevToolsin Lähteet-paneelissa ja vie hiiri nimen päälle tai lisää se seurantalistalle lukeaksesi arvon kyseiseltä riviltä.

Tiivistä tämä viesti seuraavasti: