Freecodecamp: `var` debe desalentarse.

Creado en 13 ago. 2016  ·  3Comentarios  ·  Fuente: freeCodeCamp/freeCodeCamp

Challenge Global Scope and Functions tiene un problema.
El agente de usuario es: 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 .
Describa cómo reproducir este problema e incluya vínculos a capturas de pantalla, si es posible.

Mi código:

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

Necesitamos comenzar a usar es6 let y const . var declaración de

discussing

Comentario más útil

@BKinahan Bien dicho.

Cuándo usar y no usar var no siempre depende del desarrollador individual, pero la mayoría de las veces depende del equipo.

Si bien no encontré un momento en el que var no pudiera reemplazarse con let o const , hablé con un ingeniero de OpenTable, que recientemente había refactorizado todo su código base para usar ES2015, y mencionó que hubo un caso en el que let o const fue la causa de un error y se tuvo que usar var pero no podía recordar los detalles exactos de por qué fue eso.

No creo que var deba desanimarse. Es mejor explicar la forma en que funciona var y dejar que el desarrollador elija una vez que estén más avanzados en su viaje hacia la iluminación.

También hay algunas rarezas con let y const que, si no lo sabe, puede atravesar algunos bucles (consulte: zona muerta temporal ). Esto no descalifica a let y const del uso, aunque es una molestia. Simplemente significa que asimilar algo es tan importante como saberlo.

Todos 3 comentarios

Las características de ES6, incluidas let y const , se cubrirán en detalle en los nuevos temas del plan de estudios que se están desarrollando actualmente (ver aquí ). Estos desafíos también repasarán los problemas que pueden ser causados ​​por el alcance / elevación al usar var .

Por ahora, este desafío sirve como una introducción al alcance y algunos de los problemas a tener en cuenta cuando se usa var , y aún contiene información útil, ya que es probable que los campistas encuentren código de otras fuentes (más antiguas) que sí lo hacen. use var (por ejemplo, código heredado, etc.), por lo que es una introducción útil a los problemas discutidos.

Podría haber un argumento para eliminar la línea

Siempre debes declarar tus variables con var.

o alterarlo con alguna advertencia con respecto a aprender sobre let y const más adelante, pero creo que este desafío está bien para una primera introducción al tema.

cc @ FreeCodeCamp / issue-moderators ¿Pensamientos?

@BKinahan Bien dicho.

Cuándo usar y no usar var no siempre depende del desarrollador individual, pero la mayoría de las veces depende del equipo.

Si bien no encontré un momento en el que var no pudiera reemplazarse con let o const , hablé con un ingeniero de OpenTable, que recientemente había refactorizado todo su código base para usar ES2015, y mencionó que hubo un caso en el que let o const fue la causa de un error y se tuvo que usar var pero no podía recordar los detalles exactos de por qué fue eso.

No creo que var deba desanimarse. Es mejor explicar la forma en que funciona var y dejar que el desarrollador elija una vez que estén más avanzados en su viaje hacia la iluminación.

También hay algunas rarezas con let y const que, si no lo sabe, puede atravesar algunos bucles (consulte: zona muerta temporal ). Esto no descalifica a let y const del uso, aunque es una molestia. Simplemente significa que asimilar algo es tan importante como saberlo.

Gracias por los aportes. Ambos son buenos puntos. Supongo que todo esto se basa en opiniones. Sin embargo, mantendría mi declaración e iría tan lejos como para predicar para usar datos inmutables y usar bibliotecas como immutable.js o mori para evitar mutaciones inesperadas de datos. ✌️

¿Fue útil esta página
0 / 5 - 0 calificaciones