为什么在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 种内置的数据类型 Number , String , Object , Boolean , Undefined 和 null 。而不同类型的数据相加的结果也是不同的。
例如: 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” 为什么在JavaScript中[1,2]+[3,4]等于“1,23,4”](https://static.deepinout.com/geekdocs/2023/11/01/20231031134347-1.png)
现在我们来看一下我们的问题:
[1,2] + [3,4] ,这里我们在将两个数组相加,我们知道数组的类型是一个对象,所以根据上表,当我们将两个对象相加时,得到的结果是一个字符串类型。JavaScript将这两个数组转换为一个字符串,然后将它们连接在一起。这里两个数组变成了”1,2″和”3,4″,当这两个字符串连接在一起时,我们得到了”1,23,4″的结果。
极客教程