Freecodecamp: `var` devrait être découragé.

Créé le 13 août 2016  ·  3Commentaires  ·  Source: freeCodeCamp/freeCodeCamp

Challenge Global Scope and Functions a un problème.
L'agent utilisateur est : 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 .
Veuillez décrire comment reproduire ce problème et inclure des liens vers des captures d'écran si possible.

Mon code :

// 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);
}

Nous devons commencer à utiliser es6 let et const . var déclaration de variable

discussing

Commentaire le plus utile

@BKinahan Bien dit.

Quand utiliser et ne pas utiliser var ne dépend pas toujours du développeur individuel, mais la plupart du temps, cela dépend de l'équipe.

Bien que je n'aie pas trouvé de moment où var ne pouvait pas être remplacé par let ou const j'ai parlé à un ingénieur d'OpenTable, qui avait récemment remanié l'ensemble de sa base de code pour l'utiliser ES2015, et il a mentionné qu'il y avait un cas où let ou const était la cause d'un bogue et que var devait être utilisé mais il ne pouvait pas se souvenir des détails exacts de pourquoi c'était.

Je ne pense pas qu'il faille décourager var . Mieux vaut expliquer le fonctionnement de var et laisser le développeur choisir une fois qu'il sera plus avancé dans son cheminement vers l'illumination.

Il y a aussi quelques bizarreries avec let et const qui, si vous n'êtes pas au courant, peuvent traverser certaines boucles (voir : zone morte temporelle ). Cela n'empêche pas l'utilisation de let et const , même si c'est une nuisance. Cela signifie simplement que grokker une chose est aussi important que de connaître une chose.

Tous les 3 commentaires

Les fonctionnalités ES6, notamment let et const seront couvertes en détail dans les nouveaux sujets du programme en cours de développement (voir ici ). Ces défis passeront également en revue les problèmes pouvant être causés par la portée/le levage lors de l'utilisation de var .

Pour l'instant, ce défi sert d'introduction à la portée et à certains des problèmes à surveiller lorsque var est utilisé, et contient toujours des informations utiles car les campeurs sont susceptibles de rencontrer du code provenant d'autres sources (anciennes) qui le font. utilisez var (par exemple du code hérité, etc.), et c'est donc une introduction utile aux problèmes discutés.

Il pourrait y avoir un argument pour supprimer la ligne

Vous devez toujours déclarer vos variables avec var.

ou le modifier avec une mise en garde concernant l'apprentissage de let et const plus tard, mais je pense que ce défi est bien pour une première introduction au sujet.

cc @FreeCodeCamp/issue-moderators

@BKinahan Bien dit.

Quand utiliser et ne pas utiliser var ne dépend pas toujours du développeur individuel, mais la plupart du temps, cela dépend de l'équipe.

Bien que je n'aie pas trouvé de moment où var ne pouvait pas être remplacé par let ou const j'ai parlé à un ingénieur d'OpenTable, qui avait récemment remanié l'ensemble de sa base de code pour l'utiliser ES2015, et il a mentionné qu'il y avait un cas où let ou const était la cause d'un bogue et que var devait être utilisé mais il ne pouvait pas se souvenir des détails exacts de pourquoi c'était.

Je ne pense pas qu'il faille décourager var . Mieux vaut expliquer le fonctionnement de var et laisser le développeur choisir une fois qu'il sera plus avancé dans son cheminement vers l'illumination.

Il y a aussi quelques bizarreries avec let et const qui, si vous n'êtes pas au courant, peuvent traverser certaines boucles (voir : zone morte temporelle ). Cela n'empêche pas l'utilisation de let et const , même si c'est une nuisance. Cela signifie simplement que grokker une chose est aussi important que de connaître une chose.

Merci pour les entrées. Ce sont deux bons points. Je suppose que tout est basé sur des opinions. Cependant, je maintiendrais ma déclaration et j'irais jusqu'à prêcher pour utiliser des données immuables et utiliser des bibliothèques comme immutable.js ou mori pour éviter les mutations de données inattendues. ️

Cette page vous a été utile?
0 / 5 - 0 notes