Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!