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

3.0 KiB

id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244be Ambito di applicazione globale e funzioni 1 https://scrimba.com/c/cQM7mCN 18193 global-scope-and-functions

--description--

In JavaScript, lo scope (campo di applicazione o ambito di visibilità) si riferisce alla visibilità delle variabili. Le variabili che sono definite al di fuori del blocco di una funzione hanno un campo di applicazione globale. Questo significa che possono essere viste ovunque nel tuo codice JavaScript.

Le variabili che vengono dichiarate senza la parola chiave let o la parola chiave const vengono create automaticamente nell'ambito global. Questo può dare delle conseguenze indesiderate da un'altra parte nel tuo codice o quando si esegue nuovamente la funzione. Dovresti sempre dichiarare le tue variabili con let o const.

--instructions--

Usando let o const, dichiara una variabile globale denominata myGlobal al di fuori di qualsiasi funzione. Inizializzala con un valore di 10.

All'interno della funzione fun1, assegna 5 a oopsGlobal senza utilizzare le parole chiave let o const.

--hints--

myGlobal dovrebbe essere definita

assert(typeof myGlobal != 'undefined');

myGlobal dovrebbe avere un valore di 10

assert(myGlobal === 10);

myGlobal dovrebbe essere dichiarata usando la parola chiave let o const

assert(/(let|const)\s+myGlobal/.test(code));

oopsGlobal dovrebbe essere una variabile globale e avere un valore di 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--

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