361 votes

Pourquoi le nom 'let' a-t-il été choisi pour les déclarations de variable à portée de bloc en JavaScript?

Je comprends pourquoi var prend ce nom - il est variable, const - c’est une constante, mais quelle est la signification derrière le nom de let , quelle portée au bloc actuel? Laisse faire?

420voto

exebook Points 3156

Laissez est un rapport mathématique qui a été adopté par les premiers langages de programmation comme le Régime de Base et. Les Variables sont considérées à faible niveau d'entités qui ne sont pas appropriés pour un niveau plus élevé d'abstraction, donc le désir de la langue de nombreux designers de présenter similaire, mais plus puissant des concepts comme en Clojure, F#, Scala, où let pourrait signifier une valeur ou une variable qui peut être affectée, mais pas changé, ce qui à son tour permet au compilateur de capter davantage d'erreurs de programmation et d'optimiser le code mieux. JavaScript a eu var depuis le début, ils ont juste besoin d'un autre mot-clé, et juste emprunté depuis des dizaines d'autres langues qui utilisent l' let déjà comme un traditionnel clé de près de var possible, bien que dans le JavaScript let crée le bloc de portée variable locale à la place.

104voto

Tigran Saluev Points 314

Je suppose que cela suit la tradition mathématique. En mathématiques, on dit souvent "que x soit un nombre réel arbitraire" ou comme ça.

79voto

Evan White Points 520

L'ajout de exebook de réponse, les mathématiques, l'utilisation du mot-clé let également résume bien la portée des implications de l' let lorsque utilisé en Javascript/ES6. Plus précisément, tout comme le suivant ES6 code ignore l'affectation dans les accolades de la toPrint et affiche la valeur de 'Hello World':

let toPrint = 'Hello World.';
{
    let toPrint = 'Goodbye World.';
}
console.log(toPrint); // Prints 'Hello World'

laissez utilisé en mathématiques formalisées (en particulier la rédaction de preuves) indique que l'instance actuelle d'une variable n'existe que dans le champ d'application de cette idée logique. Dans l'exemple suivant, x gagne immédiatement une nouvelle identité à l'entrée de la nouvelle idée (habituellement, ce sont les concepts nécessaires pour prouver l'idée principale) et revient immédiatement à l'ancienne x lors de la conclusion de la sous-preuve. Bien sûr, tout comme dans le codage, c'est considéré comme quelque peu confus et si est généralement évité par le choix d'un nom différent pour l'autre variable.

Soit x si et si...

Trucs de preuve

Nouvelle Idée { que x est autre chose ... prouver quelque chose } Conclure Nouvelle Idée

Prouver idée principale avec de vieux x

40voto

Charlie H Points 2538

Il fait exactement ce que le var fait avec une différence de portée. Maintenant, il ne peut pas prendre le nom var puisque c'est déjà pris.

Il semble donc qu’il ait pris le meilleur nom suivant, qui a une sémantique dans une construction de langue anglaise intéressante.

 let myPet = 'dog';
 

En anglais, il est écrit: "Que mon animal soit un chien"

11voto

oxalorg Points 1605

Le plus probable est que c'était le plus idiomatique choix. Non seulement est-il facile de parler, mais plutôt intuitif à comprendre. On pourrait faire valoir, d'autant plus que var.

Mais je crois que il y a un peu plus d'histoire.

De Wikipedia:

Dana Scott LCF langue a été une étape dans l'évolution de lambda calcul modernes, les langages fonctionnels. Cette langue a présenté le permettez l'expression, qui est apparue dans la plupart des langages fonctionnels depuis ce temps.

État des langages impératifs comme ALGOL et Pascal essentiellement de mettre en œuvre un permettez l'expression, et à mettre en œuvre restreint de fonctions, structures de bloc.

J'aimerais croire que c'était une source d'inspiration aussi, pour l' let en Javascript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X