В течение некоторого времени я использовал const
для объявления большинства переменных.
Если я точно не уверен, что новая переменная всегда будет содержать одно и то же значение, я объявлю новая переменная с let
.
Я почти никогда не использую var
.
Это я.
Тем не менее, любое другое индивидуальное написание javascript будет иметь свои предпочтения соглашения об объявлении переменных, и, если я принимаю пользовательский контент , например пользовательские модули ES6 , невозможно с уверенностью предсказать, какими могут быть эти соглашения.
Оставляя в стороне const
на данный момент ...
var
можно перезаписать на var
:
Я знаю, что следующее:
var myString = 'My String declared with var';
var myFunction = function() {console.log('My Function declared with var')};
могут быть перезаписаны переменными с одинаковыми именами, объявленными с var
.
Пример:
var myString = 'My String declared with var';
var myFunction = function() {console.log('My Function declared with var')};
var myString = 'My Overwriting String declared with var';
var myFunction = function() {console.log('My Overwriting Function declared with var')};
console.log(myString);
myFunction();
let
нельзя перезаписать на var
:
Я также знаю, что если myString
и myFunction
объявлены с let
let myString = 'My String declared with let';
let myFunction = function() {console.log('My Function declared with let')};
, они не могут быть впоследствии перезаписаны с var
, let
, или const
.
Пример:
let myString = 'My String declared with let';
let myFunction = function() {console.log('My Function declared with let')};
var myString = 'My Overwriting String declared with var';
var myFunction = function() {console.log('My Overwriting Function declared with var')};
console.log(myString);
myFunction();
Итак, зная обе эти вещи, является ли разумной гарантией преобразование любых объявлений var
в объявления let
(либо во время компиляции, либо во время выполнения) во всех Отправленные пользователем модули ES6 ?
Существуют ли какие-либо мыслимые ситуации / ситуации в модулях ES6, когда не удастся обновить var
до let
?