¿Por qué es [1,2] + [3,4] = “1,23,4” en JavaScript?

Hemos dado una expresión [1, 2] + [3, 4] , y el resultado de esta expresión es “1,23,4”. En este artículo, sabremos por qué obtenemos este extraño resultado.

Ejemplo :

=> [1,2] + [3,4] 
=> "1,23,4"

=> [1, 2, 3, 4] + [9, 8]
=> "1, 2, 3, 49, 8"

=> [4] + []
=> "4"

=> [] + []
=> ""

Antes de saber el motivo primero entendemos el operador de suma (+) y su resultado con diferentes tipos de datos. Como sabemos, hay 6 tipos de datos incorporados en javascript Number, String, Object, Boolean, Undefined y null . Y el resultado de la suma de diferentes clases de tipos de datos es diferente. 

Por ejemplo: el indefinido + indefinido => número, indefinido + objeto => string, etc.

En la siguiente tabla se da todo el resultado de la suma.

  indefinido nulo  booleano número  Cuerda Objeto
indefinido número número número  número  cuerda cuerda
nulo número número número número cuerda cuerda
booleano número número número número cuerda cuerda
número  número número número número cuerda cuerda
Cuerda cuerda cuerda cuerda cuerda cuerda cuerda
Objeto cuerda cuerda cuerda cuerda cuerda cuerda

Ejemplo: El ejemplo es la forma de obtener esa tabla, mediante este sencillo programa de JavaScript.

Javascript

<script>
    let arr1 = [undefined, null, 1, "", {}];
    let arr2 = [undefined, null, 1, "", {}];
  
    for (var i = 0; i < arr1.length; i++) {
        arr2.map((item) => {
            console.log(typeof (arr1[i] + item));
        });
        console.log("\n\n");
    }
</script>

Salida: en el programa anterior, hay dos arrays en las que se proporcionan los 6 valores de tipos de datos. Agregamos cada elemento de arr1 con cada elemento de arr2 e imprimimos el tipo de resultado. Así es como creamos la tabla de arriba.

Ahora vamos a nuestro problema [1,2] + [3,4] , aquí estamos agregando dos arrays, sabemos que el tipo de array es un objeto , por lo que, de acuerdo con la tabla anterior, cuando agregamos dos objetos , obtenemos el resultado de tipo string . JavaScript convierte las dos arrays en una string y luego las concatena . Aquí ambas arrays se convierten en «1,2» y «3,4» y cuando las dos strings se concatenan, obtenemos «1,23,4»

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *