„JavaScript“ skirtumo tarp „let“ ir „var“ supratimas

JavaScript

Kintamųjų deklaracijų suvokimas „JavaScript“.

JavaScript pasaulyje norint parašyti švarų ir efektyvų kodą labai svarbu suprasti skirtumą tarp let ir var. Įvestas ECMAScript 6, teiginys let pridėjo naują kintamojo deklaravimo dimensiją, dažnai apibūdinamą kaip suteikiančią daugiau kintamojo apimties valdymo.

Nors abu leisti ir var naudojami kintamiesiems deklaruoti, jie elgiasi skirtingai, o tai gali reikšmingai paveikti jūsų kodą. Šiame straipsnyje mes išnagrinėsime šiuos skirtumus ir pateiksime nurodymus, kada juos naudoti leisti vietoj var.

komandą apibūdinimas
var Deklaruoja kintamąjį, pasirinktinai inicijuodamas jį į reikšmę. Jis taikomas pagal funkcijas arba visame pasaulyje ir gali būti iš naujo deklaruojamas ir atnaujintas.
let Deklaruoja bloko apimties vietinį kintamąjį, pasirinktinai inicijuodamas jį į reikšmę. Ji negali būti pakartotinai deklaruojama toje pačioje srityje.
const Paskelbiama bloko apimties, tik skaitoma konstanta. Jis turi būti inicijuotas deklaravimo metu ir negali būti perskirtas.
writeHead Nustato HTTP atsako būsenos kodą ir antraštes Node.js.
createServer Sukuria HTTP serverį Node.js, kuris gali klausytis ir atsakyti į užklausas.
listen Nustato serverį, kad jis pradėtų klausytis įeinančių jungčių per nurodytą prievadą.
console.log Spausdina pranešimus į konsolę, naudinga derinant.

Kaip „leisti“ ir „var“ skiriasi praktikoje

Frontend scenarijaus pavyzdys iliustruoja pagrindinius skirtumus tarp ir . Viduje funkcija, kintamasis var x yra deklaruojamas if bloke ir iš naujo priskiria tą patį kintamąjį visoje funkcijos srityje. Dėl to abu konsolės žurnalai išveda 2, parodydami, kaip tai padaryti nepaiso bloko taikymo srities. Priešingai, funkcija deklaruoja if bloko viduje ir išorėje. The let Deklaracija bloko viduje yra skirtingas kintamasis, todėl pirmojo pulto žurnalo išvestis 2, o antrosios konsolės žurnalo išvestis 1, atsižvelgiant į bloko apimtį.

Backend Node.js pavyzdys nustato paprastą HTTP serverį, kad toliau parodytų šiuos skirtumus. Naudojant jei bloke tai matome perrašo išorinį kintamasis dėl funkcijos apimties. The let message bloko viduje lieka lokalus to bloko, parodydamas bloko apimtį, išvesdamas skirtingus pranešimus kiekvienam blokui. Panaudojimas ir komandos sukuria serverį, kuris rašo atsakymus klientui, demonstruodamas praktinį pritaikymą ir let realaus pasaulio scenarijuose.

Skirtumas tarp „let“ ir „var“ „JavaScript“.

Frontend JavaScript pavyzdys

// Example demonstrating the difference between 'var' and 'let'
function varTest() {
    var x = 1;
    if (true) {
        var x = 2;  // same variable
        console.log(x);  // 2
    }
    console.log(x);  // 2
}

function letTest() {
    let y = 1;
    if (true) {
        let y = 2;  // different variable
        console.log(y);  // 2
    }
    console.log(y);  // 1
}

varTest();
letTest();

Taikymo srities supratimas naudojant „let“ ir „var“

Backend Node.js pavyzdys

// Backend example using Node.js to demonstrate 'let' and 'var'
const http = require('http');

http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    var count = 10;
    let message = "The count is: ";

    if (true) {
        var count = 20;  // 'count' is hoisted and overwritten
        let message = "New count is: ";  // block-scoped
        res.write(message + count);  // New count is: 20
    }
    res.write(message + count);  // The count is: 20
    res.end();
}).listen(8080);

console.log('Server running at http://127.0.0.1:8080/');

Giliau pasinerkite į taikymo sritį ir kėlimą

Kitas svarbus aspektas, į kurį reikia atsižvelgti lyginant ir yra keliamas. Pakėlimas yra „JavaScript“ elgsena, kai deklaracijos perkeliamos į dabartinės apimties viršų. Su , kintamieji pakeliami ir inicijuojami undefined, o tai gali sukelti netikėtų rezultatų, jei kintamasis naudojamas prieš jo paskelbimą. Priešingai, taip pat yra pakeltas, bet jis nėra inicijuotas. Tai reiškia prieigą prie a kintamasis prieš jo deklaravimą sukels a .

Be to, padeda išvengti problemų, susijusių su kilpų uždarymu. Vartojant cikle visos iteracijos nurodo tą patį kintamąjį, todėl gali atsirasti klaidų. Tačiau sukuria naują susiejimą kiekvienai iteracijai, užtikrindama, kad kiekviena ciklo iteracija turėtų savo apimtį. Toks elgesys skatina let saugesnis ir labiau nuspėjamas pasirinkimas kintamiesiems kilpose deklaruoti.

  1. Kas yra „JavaScript“ pakėlimas?
  2. Pakėlimas yra numatytasis „JavaScript“ elgesys, kai deklaracijos perkeliamos į dabartinės apimties viršų. deklaracijos iškeliamos ir inicijuojamos , kol deklaracijos iškeliamos, bet nėra inicijuojamos.
  3. Kas atsitiks, jei naudosite a kintamasis prieš jo paskelbimą?
  4. Prieiga prie a kintamasis, kol jo deklaravimas nesukels a .
  5. Gali ir pakartotinai deklaruoti ta pačia apimtimi?
  6. ne, negali būti pakartotinai deklaruojamos toje pačioje srityje, tuo tarpu gali būti pakartotinai deklaruojami ta pačia apimtimi.
  7. Kodėl pageidautina kilpose?
  8. sukuria naują susiejimą kiekvienai ciklo iteracijai, užtikrindama, kad kiekviena ciklo iteracija turėtų savo apimtį. Taip išvengiama įprastų klaidų, susijusių su uždarymu.
  9. Ar gerbti bloko taikymo sritį?
  10. ne, nepaiso bloko taikymo srities; jis taikomas pagal funkcijas arba visame pasaulyje.
  11. Kas yra laikinoji negyvoji zona?
  12. Laikinoji negyva zona yra laikas nuo apimties įvedimo iki faktinio kintamojo deklaravimo, per kurį prieiga prie kintamasis išmes a .
  13. Gali būti naudojamas panašiai kaip ?
  14. taip, yra kaip blokas , bet jis naudojamas deklaruoti kintamuosius, kurių nereikėtų priskirti iš naujo.
  15. Kada turėtų būti naudojamas per ?
  16. turėtų būti panaudota per kai reikia bloko apimties ir išvengti problemų dėl kintamo kėlimo ir uždarymo.

Paskutinės mintys apie kintamąsias deklaracijas

Apibendrinant, įvadas ECMAScript 6 suteikė kūrėjams patikimesnį įrankį kintamiesiems deklaruoti JavaScript. Suprasti skirtumus tarp ir yra būtinas norint rašyti švaresnį, labiau prižiūrimą kodą. Nors var vis tiek gali būti naudinga tam tikrose situacijose, siūlo geresnę taikymo sritį ir kėlimą, sumažindama klaidų tikimybę.

Pasirinkdami baigta Tinkamais scenarijais kūrėjai gali pasinaudoti bloko taikymo srities privalumais ir išvengti įprastų spąstų, susijusių su kintamu deklaravimu ir pakėlimu. Šios žinios yra būtinos visiems, norintiems įvaldyti šiuolaikinį JavaScript kūrimą.