Freecodecamp: Использование `var` не рекомендуется.

Созданный на 13 авг. 2016  ·  3Комментарии  ·  Источник: freeCodeCamp/freeCodeCamp

Challenge Global Scope and Functions имеет проблему.
Пользовательский агент: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 .
Опишите, как воспроизвести эту проблему, и, если возможно, добавьте ссылки на снимки экрана.

Мой код:

// Declare your variable here
var myGlobal = 10;

function fun1() {
  // Assign 5 to oopsGlobal Here

}

// Only change code above this line
function fun2() {
  var output = "";
  if (typeof myGlobal != "undefined") {
    output += "myGlobal: " + myGlobal;
  }
  if (typeof oopsGlobal != "undefined") {
    output += " oopsGlobal: " + oopsGlobal;
  }
  console.log(output);
}

Нам нужно начать использовать es6 let и const . var Объявление переменной может привести к ошибке.

discussing

Самый полезный комментарий

@BKinahan Хорошо

Когда использовать и не использовать var не всегда зависит от отдельного разработчика, но в большинстве случаев это зависит от команды.

Хотя я не нашел случая, когда var нельзя было заменить на let или const я поговорил с инженером из OpenTable, который недавно реорганизовал всю свою кодовую базу для использования ES2015, и он упомянул, что был один случай, когда let или const были причиной ошибки, а var нужно было использовать, но он не мог вспомнить точные детали почему это было.

Я не думаю, что var следует расстраивать. Лучше объяснить, как работает var и позволить разработчику сделать выбор, когда он продвинется дальше по пути к просветлению.

Есть также некоторые странности с let и const которые, если вы не знаете об этом, могут пройти через вас через некоторые циклы (см .: временная мертвая зона ). Это не лишает права использовать let и const , даже если это раздражает. Это просто означает, что разглядывать что-то так же важно, как и знать что-то.

Все 3 Комментарий

Функции ES6, включая let и const будут подробно рассмотрены в новых темах учебной программы, которые в настоящее время разрабатываются (см. Здесь ). Эти проблемы также будут касаться проблем, которые могут быть вызваны определением объема / подъемом при использовании var .

На данный момент эта задача служит введением в область видимости и некоторыми проблемами, на которые следует обратить внимание при использовании var , и по-прежнему содержит полезную информацию, поскольку участники лагеря, вероятно, столкнутся с кодом из других (более старых) источников, которые используйте var (например, устаревший код и т. д.), так что это полезное введение в обсуждаемые вопросы.

Может быть аргумент в пользу удаления строки

Вы всегда должны объявлять свои переменные с помощью var.

или изменив его с некоторыми оговорками относительно изучения let и const позже, но я думаю, что эта задача подходит для первого введения в тему.

cc @ FreeCodeCamp / issue-moderators Мысли?

@BKinahan Хорошо

Когда использовать и не использовать var не всегда зависит от отдельного разработчика, но в большинстве случаев это зависит от команды.

Хотя я не нашел случая, когда var нельзя было заменить на let или const я поговорил с инженером из OpenTable, который недавно реорганизовал всю свою кодовую базу для использования ES2015, и он упомянул, что был один случай, когда let или const были причиной ошибки, а var нужно было использовать, но он не мог вспомнить точные детали почему это было.

Я не думаю, что var следует расстраивать. Лучше объяснить, как работает var и позволить разработчику сделать выбор, когда он продвинется дальше по пути к просветлению.

Есть также некоторые странности с let и const которые, если вы не знаете об этом, могут пройти через вас через некоторые циклы (см .: временная мертвая зона ). Это не лишает права использовать let и const , даже если это раздражает. Это просто означает, что разглядывать что-то так же важно, как и знать что-то.

Спасибо за вклад. Оба они хороши. Я полагаю, это все основано на мнении. Тем не менее, я бы поддержал свое утверждение, и я бы пошел дальше, чтобы проповедовать использовать неизменяемые данные и использовать библиотеки, такие как immutable.js или mori, для предотвращения неожиданных мутаций данных. ✌️

Была ли эта страница полезной?
0 / 5 - 0 рейтинги