js concat 方法(字符串拼接,数组拼接)

js 字符串和数据均有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 方法返回数组

@萍2樱释ღ( ´・ᴗ・` )