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 var ir let. Viduje varTest 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 var nepaiso bloko taikymo srities. Priešingai, letTest funkcija deklaruoja let y 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 var count jei bloke tai matome var perrašo išorinį count 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 createServer ir listen komandos sukuria serverį, kuris rašo atsakymus klientui, demonstruodamas praktinį pritaikymą var 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 let ir var yra keliamas. Pakėlimas yra „JavaScript“ elgsena, kai deklaracijos perkeliamos į dabartinės apimties viršų. Su var, kintamieji pakeliami ir inicijuojami undefined, o tai gali sukelti netikėtų rezultatų, jei kintamasis naudojamas prieš jo paskelbimą. Priešingai, let taip pat yra pakeltas, bet jis nėra inicijuotas. Tai reiškia prieigą prie a let kintamasis prieš jo deklaravimą sukels a ReferenceError.
Be to, let padeda išvengti problemų, susijusių su kilpų uždarymu. Vartojant var cikle visos iteracijos nurodo tą patį kintamąjį, todėl gali atsirasti klaidų. Tačiau let 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.
Dažni klausimai apie „let“ ir „var“ programoje „JavaScript“.
- Kas yra „JavaScript“ pakėlimas?
- Pakėlimas yra numatytasis „JavaScript“ elgesys, kai deklaracijos perkeliamos į dabartinės apimties viršų. var deklaracijos iškeliamos ir inicijuojamos undefined, kol let deklaracijos iškeliamos, bet nėra inicijuojamos.
- Kas atsitiks, jei naudosite a let kintamasis prieš jo paskelbimą?
- Prieiga prie a let kintamasis, kol jo deklaravimas nesukels a ReferenceError.
- Gali let ir var pakartotinai deklaruoti ta pačia apimtimi?
- ne, let negali būti pakartotinai deklaruojamos toje pačioje srityje, tuo tarpu var gali būti pakartotinai deklaruojami ta pačia apimtimi.
- Kodėl let pageidautina kilpose?
- let 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.
- Ar var gerbti bloko taikymo sritį?
- ne, var nepaiso bloko taikymo srities; jis taikomas pagal funkcijas arba visame pasaulyje.
- Kas yra laikinoji negyvoji zona?
- Laikinoji negyva zona yra laikas nuo apimties įvedimo iki faktinio kintamojo deklaravimo, per kurį prieiga prie let kintamasis išmes a ReferenceError.
- Gali const būti naudojamas panašiai kaip let?
- taip, const yra kaip blokas let, bet jis naudojamas deklaruoti kintamuosius, kurių nereikėtų priskirti iš naujo.
- Kada turėtų let būti naudojamas per var?
- let turėtų būti panaudota per var 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 let ECMAScript 6 suteikė kūrėjams patikimesnį įrankį kintamiesiems deklaruoti JavaScript. Suprasti skirtumus tarp let ir var yra būtinas norint rašyti švaresnį, labiau prižiūrimą kodą. Nors var vis tiek gali būti naudinga tam tikrose situacijose, let siūlo geresnę taikymo sritį ir kėlimą, sumažindama klaidų tikimybę.
Pasirinkdami let baigta var 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ą.