为什么在JavaScript中[1,2]+[3,4]等于“1,23,4”

为什么在JavaScript中[1,2]+[3,4]等于“1,23,4”

我们已经给出了一个表达式 [1,2]+[3,4] ,这个表达式的结果是 “1,23,4” 。在这篇文章中,我们将知道为什么会得到这个奇怪的结果。

示例:

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

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

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

=> [] + []
=> ""

在了解原因之前,首先我们要了解加法运算符(+)以及不同数据类型的结果。正如我们所知,JavaScript 中有 6 种内置的数据类型 NumberStringObjectBooleanUndefinednull 。而不同类型的数据相加的结果也是不同的。

例如: undefined + undefined => 数字,undefined + object => 字符串等。

以下表格显示了加法的所有结果:

undefined null boolean number String Object
undefined number number number number string string
null number number number number string string
boolean number number number number string string
number number number number number string string
String string string string string string string
Object string string string string string string

示例: 这个示例是通过这个简单的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> 

输出: 在上面的程序中,有两个数组,其中提供了6种数据类型的所有值。我们将arr1的每个项目与arr2的每个项目相加,并打印结果的类型。这就是我们创建上面表格的方式。

为什么在JavaScript中[1,2]+[3,4]等于“1,23,4”

现在我们来看一下我们的问题:

[1,2] + [3,4] ,这里我们在将两个数组相加,我们知道数组的类型是一个对象,所以根据上表,当我们将两个对象相加时,得到的结果是一个字符串类型。JavaScript将这两个数组转换为一个字符串,然后将它们连接在一起。这里两个数组变成了”1,2″和”3,4″,当这两个字符串连接在一起时,我们得到了”1,23,4″的结果。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程