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