Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Agregar parámetros de función crea un sombreado variable, mientras que ningún parámetro da como resultado una reasignación.

A continuación, tengo 2 ejemplos, con la única diferencia de que una función tiene un parámetro mientras que la otra no. Pero el Ejemplo 1 registrará un hello en la consola, mientras que el Ejemplo 2 registrará un hello! a la consola

Mi pregunta es ¿por qué el Ejemplo 1 registra hello mientras que el Ejemplo 2 registra hello! .

Ejemplo 1, no estoy seguro de lo que está pasando. Mi conjetura es que en el Ejemplo 1 estamos usando sombreado variable. El parámetro de greet se inicializa en una cadena primitiva hello . El parámetro de greet sombrea el greet de la línea 1. Por lo tanto, cuando registramos greet en la consola, estamos registrando el greet desde el ámbito global, hello .

No estoy seguro pero, en el Ejemplo 2, la función salutation se invoca con el argumento 'hello' . Luego, la variable global greet se reasigna al valor de 'hello' + '!' . Por lo tanto, cuando se registra greet en la consola, estamos registrando el valor al que se reasignó greet , hello! .

¿Por qué la falta de un parámetro de greet en la función nos permite registrar el valor reasignado a la consola? Pero cuando la función tiene un parámetro, ¿registramos la variable global en la consola?

Ejemplo 1.

 let greet = 'hello'; function salutation(greet) { greet = greet + '!'; } salutation(greet); console.log(greet); //hello

Ejemplo 2.

 let greet = 'hello'; function salutation() { greet = greet + '!'; } salutation(greet); console.log(greet); //'hello!'

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El argumento de la función se copia por valor , por lo que el greet (global) y el greet (local) son completamente diferentes. Con la línea de abajo, greet es una copia de la variable global y solo está disponible dentro de la función, por lo tanto, local.

 function salutation(greet) { greet = greet + '!'; }
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Por qué la falta de un parámetro de greet en la función nos permite registrar el valor reasignado a la consola? Pero cuando la función tiene un parámetro, ¿registramos la variable global en la consola?

Ambos ejemplos registran la variable global en la consola.

Es solo que en el primer fragmento, hay una variable de greet local que se reasigna, mientras que en el segundo fragmento no hay una variable local y asigna (y accede) a la variable global de greet través del cierre.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda