Hvad er ydelsesforskellen mellem 'lad' og 'var' i JavaScript?


Svar 1:

1. let introduceres i es6 for at forenkle omfanget af variablen. let bruges, når der er en begrænset anvendelse af disse variabler. Sig, for løkker, mens løkker eller inden for omfanget af hvis forhold osv.

ex :: for (lad i = 0; i <10; i ++) {console.log (i)} // her er jeg begrænset til for loop-blok.

Hvis du prøver at udskrive det uden for for-loop-blokken, kaster det en fejl.

men hvis du har brugt var i stedet for lade det udskrives i inden og uden for for-loop.

2) variabler, der er erklæret af var, har funktionsomfang og heises til toppen. Det betyder, at en variabel kan bruges, før den er erklæret. lad variabler ikke kan bruges før erklæringen.

3) lad * * -variabler kan ikke deklareres igen, mens variablen kan deklareres i samme omfang.

ex ::

// ved hjælp af var

var a = "hej";

var a = "hej"; // udskiftes let

// ved hjælp af let

lad b = "hej";

lad b = "hej" // det kaster fejl, da 'b allerede er erklæret'.

PS: du kan prøve ovenstående eksempel i din browserkonsol for at forstå det ordentligt.


Svar 2:

Forskellen er scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Kilde: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel?


Svar 3:

Den største forskel mellem 'lad' og 'var' nøgleord i JavaScript er

anvendelsesområde

  • Let giver dig mulighed for at erklære variabler, der er begrænset i omfang til den blok, sætning eller udtryk, som det bruges på. Var-nøgleordet, som definerer en variabel globalt eller lokalt til en hel funktion uanset blokomfang. "Var" scoped til den nærmeste funktionsblok og “lad” scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok. Også variabler, der er erklæret med "lad", er ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en undtagelse af referencefejl.

Overvej følgende kodestykker

Eksempel 1: variabel erklæret som var

funktionsnode Simplified () {
  var a = 10;
  console.log (a); // output 10
  hvis (sand) {
   var a = 20;
   console.log (a); // output 20
  }
  console.log (a); // output 20
}

Eksempel 2: variabel erklæret som lad

funktionsnode Simplified () {
  lad a = 10;
  console.log (a); // output 10
  hvis (sand) {
   lad a = 20;
   console.log (a); // output 20
  }
  console.log (a); // output 10
}

Globalt vindueobjekt

Selvom let-variablen er defineret som den samme som var-variabel globalt, tilføjes let-variablen ikke til det globale vindueobjekt.

Eksempel på begge variabler er deklareret globalt her

var varVariable = “dette er en var variabel”;

let letVariable = “dette er en let-variabel”;

Lad os se, hvad output var og lad variabel vil generere

console.log (window.varVariable); // dette er en variabel

console.log (window.letVariable); // undefined

Lad variabler således ikke fås adgang til i vindueobjektet, fordi de ikke kan få adgang til globalt.

A2A: - Abhinn Krishn (अभिन्न कृष्ण)

#ENJOY KODNING


Svar 4:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 5:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 6:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 7:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 8:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 9:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 10:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 11:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.


Svar 12:

A2A

Forskellen mellem let og var er af scoping. var scoped til den nærmeste funktionsblok og let scoped til den nærmeste lukkende blok, som kan være mindre end en funktionsblok. Begge er globale, hvis de ikke er nogen blok.

Variabler, der er erklæret med let, er heller ikke tilgængelige, før de deklareres i deres lukkende blok. Som det ses i demoen, vil dette kaste en ReferenceError-undtagelse.

Global:

De er meget ens, når de bruges som denne uden for en funktionsblok.

lad mig = 'gå'; // globalt scoped
var i = 'stand'; // globalt scoped

Globale variabler defineret med let tilføjes dog ikke som egenskaber i det globale vinduesobjekt som dem, der er defineret med var.

console.log (window.me); // udefineret
console.log (window.i); // 'i stand'

Fungere:

De er identiske, når de bruges som dette i en funktionsblok.

funktion ingWithinEstablishedParameters () {
    lad terOfRecommendation = 'fantastisk arbejder!'; // funktionsblok scoped
    var sityCheerleading = 'gå!'; // funktionsblok scoped
}

Blok:

Her er forskellen. let er kun synlig i for () -løkken, og var er synlig for hele funktionen.

funktion allyLitteriter () {
    // tuce er * ikke * synlig herude

    for (lad tuce = 0; tuce <5; tuce ++) {
        // tuce er kun synlig her (og i for () parenteser)
        // og der er en separat tuce-variabel for hver iteration af løkken
    }

    // tuce er * ikke * synlig herude
}

funktion afE40 () {
    // nish * er * synlig herude

    for (var nish = 0; nish <5; nish ++) {
        // nish er synlig for hele funktionen
    }

    // nish * er * synlig herude
}

omerklæring:

Hvis du antager en streng tilstand, giver var du mulighed for at gentegne den samme variabel i samme omfang. På den anden side skal lad ikke:

'brug streng';
lad mig = 'foo';
lad mig = 'bar'; // SyntaxError: Identifikator 'mig' er allerede erklæret
'brug streng';
var me = 'foo';
var me = 'bar'; // Intet problem, "mig" erstattes.

Dette svar blev ikke skrevet af mig. Dette svar er herfra: Hvad er forskellen på at bruge "lad" og "var" til at erklære en variabel i JavaScript?

Jeg kunne ikke have forklaret det bedre end dette, og har derfor tilføjet det her for folk at se.