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

187
Visualizações
¿Hay alguna diferencia entre bolsa= bolsa + n - i +1 y bolsa += n - i + 1

¿Hay alguna diferencia entre bag= bag + n - i +1 y bag += n - i + 1 bcs? Se muestra diferente al ejecutar un programa a continuación:

 var n = 5 for (i = 1; i <= n; i++) { var bag = "" for (j = 1; j <= n - i + 1; j++) { bag += n - j + 1 } console.log(bag) } // 2nd way var n = 5; // for (let i = 1; i <= n; i++) { var string = ""; for (let j = 1; j <= n - i + 1; j++) { string = string + n - j + 1; } console.log(string); }

Repetir enlace

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

0

bag = bag + n - i + 1 y bag += n - i + 1 no son lo mismo.

  • En el primero, la bag se obliga a un número
  • En este último, el resultado se convierte en una cadena.

La coacción se produce en el operador de resta:

 console.log('' + 1); //=> '1' console.log('' - 1); //=> -1

about 4 years ago · Juan Pablo Isaza Relatório

0

Sí, hay una diferencia. La diferencia tiene que ver con el orden en que se evalúan sus operadores:

 bag += n - i + 1

es lo mismo que:

 bag = bag + (n - i + 1) // string concatenation as `bag` is a string and we're using `+`

Observe que n - i + 1 está agrupado ( ( ) ) porque está en el lado derecho de += , por lo que se evalúa/calcula primero antes de concatenarse con la bag de cadenas. Las dos líneas de código anteriores son diferentes de su otra alternativa de:

 bag = bag + n - i +1

Aquí no hay agrupación, por lo que el orden en que se evalúan los operadores es diferente (ver precedencia de operadores ). Lo anterior es equivalente a:

 bag = (bag + n) - (i + 1) // (string) - (number)

... que con suerte puede ver dará resultados diferentes a los de las dos primeras líneas anteriores, ya que ahora está restando cantidades diferentes. Además, como estás usando la resta, tus resultados ahora serán números.

about 4 years ago · Juan Pablo Isaza Relatório

0

¿Por qué?

Hay una diferencia porque está usando el operador "+" para la concatenación y está usando un "-" en la misma línea, por lo que JS está implícitamente cambiando cadenas y números por usted.

En el ejemplo de bag += n - j + 1 , JS evalúa todo en el lado derecho de izquierda a derecha. Luego, ese número se concatena al final de la cadena denominada bag .

En el ejemplo de bag = bag + n - j + 1 , JS nuevamente evalúa todo en el lado derecho de izquierda a derecha, pero ahora tenemos una mezcla de cadenas y números en el lado derecho, por lo que observa un comportamiento extraño. resultante del antipatrón.

Mira aquí:

 bag += n - j + 1 // => bag += 5 - 1 + 1 => bag += 5 => bag = "5" bag = bag + n - j + 1 // => bag = "" + 5 - 1 + 1 => bag = "5" - 1 + 1 => bag = 5

En el siguiente ciclo, con la segunda sintaxis, agregará un número en lugar de concatenar una cadena, que es lo que está causando su problema.

Solución

Para solucionar esto, técnicamente puede mantener la primera sintaxis, o puede encerrar los números entre paréntesis, así: bag = bag + (n - j + 1) , pero recomendaría considerar hacer sus moldes explícitos, como bag += String(n - j + 1) o bag = bag.concat(n - j + 1) y evite mezclar tipos de datos para garantizar que errores como estos no vuelvan a surgir.

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