1. 字符串 concat 方法
2. 数组的concat 方法
3. 字符串和数组混用 concat 方法
一. 字符串 concat 方法
字符串 concat 方法用于连接两个字符串,返回一个新字符串,不改变原字符串。
var s1 = 'abc';
var s2 = 'def';
s1.concat(s2) // "abcdef"
s1 // "abc"
该方法可以接受多个参数。
'a'.concat('b', 'c') // "abc"
如果参数不是字符串,concat
方法会将其先转为字符串,然后再连接。
var one = 1;
var two = 2;
var three = '3';
''.concat(one, two, three) // "123"
one + two + three // "33"
上面代码中,concat
方法将参数先转成字符串再连接,所以返回的是一个三个字符的字符串。作为对比,加号运算符在两个运算数都是数值时,不会转换类型,所以返回的是一个两个字符的字符串。
二.数组的 concat 方法
数组 concat 方法用于多个数组的合并。它将新数组的成员,添加到原数组成员的后部,然后返回一个新数组,原数组不变.
['hello'].concat(['world'])
// ["hello", "world"]
['hello'].concat(['world'], ['!'])
// ["hello", "world", "!"]
[].concat({a: 1}, {b: 2})
// [{ a: 1 }, { b: 2 }]
[2].concat({a: 1})
// [2, {a: 1}]
除了数组作为参数,concat
也接受其他类型的值作为参数,添加到目标数组尾部。
[1, 2, 3].concat(4, 5, 6)
// [1, 2, 3, 4, 5, 6]
三. 字符串和数组混用 concat 方法
var str = 'yangping' ;
var arr = ['y','p'] ;
str.concat(arr) ; // "yangpingy,p"
arr.concat(str) ; // ["y", "p", "yangping"]
当调用 “str.concat(arr)” 时候, 会将 arr 转换为字符串值 , 然后和 str 拼接起来,等效于以下代码
str + arr.toString()
而数组的 toString 方法,就是将arr数组所有元素值以 ',' 拼接起来(结果为 "y,p"),所以最终的结果字符串值为 "yangpingy,p"
当调用 “arr.concat(str)”时候,因为 arr 的 concat 方法允许接收字符串值作为参数,所以直接拼接到数组后面啦,所以最终结果为 ["y", "p", "yangping"]
注:字符串 concat 方法返回字符串 ,数组的 concat 方法返回数组