Files
freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/es6/explore-differences-between-the-var-and-let-keywords.md
2021-03-31 06:38:36 -07:00

2.4 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b87367417b2b2512b3f Explora las diferencias entre las palabras claves var y let 1 301202 explore-differences-between-the-var-and-let-keywords

--description--

Uno de los mayores problemas con la declaración de variables utilizando la palabra clave var es que tú puedes sobrescribir declaraciones de variables sin un error.

var camper = 'James';
var camper = 'David';
console.log(camper);

Aquí la consola mostrará la cadena de caracteres David.

Como puedes ver en el código anterior, la variable camper es originalmente declarada como James luego de anularse pasa a ser David. En una aplicación pequeña, puede que no te topes con este tipo de problema, pero cuando tu código se vuelve mas grande, puede que accidentalmente sobrescribas una variable que no pretendías sobrescribir. Debido a que este comportamiento no arroja un error, buscar y corregir errores se vuelve mas difícil.
Una nueva palabra clave llamada let que fue introducida en ES6 para resolver este posible problema con la palabra clave var. Si reemplazas var por let en las declaraciones de variables del código anterior, el resultado será un error.

let camper = 'James';
let camper = 'David';

Este error se puede ver en la consola de tu navegador. Así que a diferencia de var, al usar let, una variable con el mismo nombre solo puede declararse una vez. Toma en cuenta el "use strict" (uso estricto). Esto habilita el modo estricto, el cual captura errores comunes de programación y acciones "inseguras". Por ejemplo:

"use strict";
x = 3.14;

Esto mostrará el error x is not defined.

--instructions--

Actualiza el código para que solo utilice la palabra clave let.

--hints--

var no debe existir en el código.

(getUserInput) => assert(!getUserInput('index').match(/var/g));

catName debe ser la cadena Oliver.

assert(catName === 'Oliver');

quote debe ser la cadena Oliver says Meow!

assert(quote === 'Oliver says Meow!');

--seed--

--seed-contents--

var catName;
var quote;
function catTalk() {
  "use strict";

  catName = "Oliver";
  quote = catName + " says Meow!";

}
catTalk();

--solutions--

let catName;
let quote;
function catTalk() {
  'use strict';

  catName = 'Oliver';
  quote = catName + ' says Meow!';
}
catTalk();