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 方法返回數組