Я понимаю, почему var
принимает это имя - это переменная, const
- это константа, но в чем смысл названия для let
, который привязан к текущему блоку? Пусть это будет?
Почему было выбрано имя "let" для объявлений переменных в блочной области в JavaScript?
Ответ 1
Это математическое утверждение, которое было принято на ранних языках программирования, таких как Scheme и Basic. Переменные считаются объектами низкого уровня, не подходящими для более высоких уровней абстракции, поэтому желание многих разработчиков языка вводить похожие, но более мощные понятия, такие как Clojure, F #, Scala, где let
может означать значение или переменную, которая может быть назначена, но не изменена, что, в свою очередь, позволяет компилятору уловить больше ошибок программирования и лучше оптимизировать код. JavaScript имеет var
с самого начала, поэтому им просто нужно другое ключевое слово и просто заимствовано из десятков других языков, которые используют let
уже как традиционное ключевое слово как можно ближе к var
, хотя в JavaScript let
вместо этого создает локальную переменную области блока.
Ответ 2
Я предполагаю, что это соответствует математической традиции. В математике часто говорят, что "пусть x - произвольное действительное число" или тому подобное.
Ответ 3
Он делает именно то, что делает var
с разницей в объеме. Теперь он не может принимать имя var
, поскольку оно уже выполнено.
Итак, похоже, что оно заняло следующее лучшее имя, которое имеет семантику в интересной конструкции английского языка.
let myPet = 'dog';
На английском языке говорится: "Пусть мое домашнее животное будет собакой"
Ответ 4
Добавляя в ответ exebook, использование математики ключевого слова let также хорошо отражает объемные значения let
при использовании в Javascript/ES6. В частности, так же, как следующий код ES6 игнорирует назначение в фигурных скобках toPrint
и выводит значение 'Hello World'
:
let toPrint = 'Hello World.';
{
let toPrint = 'Goodbye World.';
}
console.log(toPrint); // Prints 'Hello World'
let, используемый в формализованной математике (особенно при написании доказательств), указывает, что текущий экземпляр переменной существует только для области этой логической идеи. В следующем примере x сразу получает новую идентичность при входе в новую идею (обычно это концепции, необходимые для доказательства основной идеи) и сразу возвращается к старому x по завершению суб-доказательства. Конечно, так же, как и при кодировании, это считается несколько запутанным, и поэтому его обычно избегают, выбирая другое имя для другой переменной.
Пусть x так и так...
& EnSP; Доказательство
& ensp; Новая идея {Пусть x - что-то еще... доказать что-то} Заключить новую идею
& ensp; Докажите основную идею старым x
Ответ 5
Наиболее вероятная возможность состоит в том, что это был самый идиоматический выбор. Это не только легко говорить, но и интуитивно понятно. Некоторые могут возразить, даже больше, чем var
.
Но я считаю здесь немного больше истории.
Из Википедии:
Язык Dana Scott LCF был этапом в эволюции лямбда-исчисления в современные функциональные языки. Этот язык ввел выражение let, которое появилось на большинстве функциональных языков с того времени.
Полнотекстовые императивные языки, такие как ALGOL и Pascal, по существу реализуют выражение let, чтобы реализовать ограниченную область функций в блочных структурах.
Я хотел бы верить, что это тоже было вдохновение для let
в Javascript.
Ответ 6
Позволяет использовать более ограниченную область с ограниченным уровнем блока, тогда как var - это область функций или глобальная область действия.
Кажется, что let был выбран, скорее всего, потому, что он найден на многих других языках для определения переменных, таких как BASIC и многих других.