Files
freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-and-data-structures/basic-javascript/local-scope-and-functions.md

2.0 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244bf Conhecer o escopo local e funções 1 https://scrimba.com/c/cd62NhM 18227 local-scope-and-functions

--description--

Variáveis que são declaradas dentro de uma função, assim como parâmetros de funções, possuem escopo local. Isso significa que eles são visíveis apenas dentro da função.

Aqui está uma função myTest com uma variável local chamada loc.

function myTest() {
  var loc = "foo";
  console.log(loc);
}
myTest();
console.log(loc);

A chamada da função myTest() irá exibir a string foo no console. A linha console.log(loc) irá lançar um erro, já que loc não foi definido fora da função.

--instructions--

O editor possui dois console.log para te ajudar a ver o que está acontecendo. Verifique o console enquanto codifica para ver como muda. Declare uma variável local myVar dentro de myLocalScope e rode os testes.

Nota: O console ainda exibirá ReferenceError: myVar is not defined, mas isso não causará falha nos testes.

--hints--

O código não deve conter uma variável global myVar.

function declared() {
  myVar;
}
assert.throws(declared, ReferenceError);

Você deve adicionar a variável local myVar.

assert(
  /functionmyLocalScope\(\)\{.*(var|let|const)myVar[\s\S]*}/.test(
    __helpers.removeWhiteSpace(code)
  )
);

--seed--

--seed-contents--

function myLocalScope() {

  // Only change code below this line

  console.log('inside myLocalScope', myVar);
}
myLocalScope();

// Run and check the console
// myVar is not defined outside of myLocalScope
console.log('outside myLocalScope', myVar);

--solutions--

function myLocalScope() {

  // Only change code below this line
  var myVar;
  console.log('inside myLocalScope', myVar);
}
myLocalScope();

// Run and check the console
// myVar is not defined outside of myLocalScope
console.log('outside myLocalScope', myVar);