freeCodeCamp/curriculum/challenges/espanol/02-javascript-algorithms-an.../basic-javascript/global-scope-and-functions.md

2.7 KiB

id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244be Ámbito global y funciones 1 https://scrimba.com/c/cQM7mCN 18193 global-scope-and-functions

--description--

En JavaScript, el ámbito se refiere a la visibilidad de las variables. Las variables definidas fuera de un bloque de función tienen un ámbito Global. Esto significa que pueden ser observadas desde cualquier lugar en tu código JavaScript.

Las variables que se usan sin la palabra clave var se crean automáticamente en el ámbito global. Esto puede crear consecuencias no intencionadas en cualquier lugar de tu código o al volver a ejecutar una función. Siempre debes declarar tus variables con var.

--instructions--

Usando var, declara una variable global llamada myGlobal fuera de cualquier función. Inicialízala con un valor de 10.

Dentro de la función fun1, asigna 5 a oopsGlobal sin usar la palabra clave var.

--hints--

myGlobal debe ser definida

assert(typeof myGlobal != 'undefined');

myGlobal debe tener un valor de 10

assert(myGlobal === 10);

myGlobal debe declararse usando la palabra clave var

assert(/var\s+myGlobal/.test(code));

oopsGlobal debe ser una variable global y tener un valor de 5

assert(typeof oopsGlobal != 'undefined' && oopsGlobal === 5);

--seed--

--before-user-code--

var logOutput = "";
var originalConsole = console
function capture() {
    var nativeLog = console.log;
    console.log = function (message) {
        logOutput = message;
        if(nativeLog.apply) {
          nativeLog.apply(originalConsole, arguments);
        } else {
          var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');
          nativeLog(nativeMsg);
        }
    };
}

function uncapture() {
  console.log = originalConsole.log;
}
var oopsGlobal;
capture();

--after-user-code--

fun1();
fun2();
uncapture();
(function() { return logOutput || "console.log never called"; })();

--seed-contents--

// Declare the myGlobal variable below this line


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

--solutions--

var myGlobal = 10;

function fun1() {
  oopsGlobal = 5;
}

function fun2() {
  var output = "";
  if(typeof myGlobal != "undefined") {
    output += "myGlobal: " + myGlobal;
  }
  if(typeof oopsGlobal != "undefined") {
    output += " oopsGlobal: " + oopsGlobal;
  }
  console.log(output);
}