JavaScript的concat方法

数组的concat方法

用途: 合并2个或多个数组

变量名value1,value2,value3,…,valueN
详细描述值或者数组(可以传对象)
是否必传

要注意,concat返回的是一个浅拷贝

示例:

1.连接2个数组

const arr = [1, 2, 3].concat([4, 5])
console.log(arr) // [1,2,3,4,5]

2.连接3个数组

    const arr1 = [1, 2]
    const arr2 = [3, 4]
    const arr3 = [5, 6]
    const arr4 = arr1.concat(arr2, arr3)
    console.log(arr4) // [1, 2, 3, 4, 5, 6]

3.连接值到数组

    const arr1 = [1, 2]
    const arr2 = 3
    const arr3 = [5, 6]
    const arr4 = arr1.concat(arr2, arr3)
    console.log(arr4) // [1, 2, 3, 5, 6]

有趣的知识

talk is cheap,show you my code

    const arr1 = [[1]]
    const arr2 = [3, 4]
    const arr3 = [5, 6]
    const arr4 = arr1.concat(arr2, arr3)
    console.log(arr4) // [[1], 3, 4, 5, 6]
    arr1[0].push(2)
    console.log(arr4) // [[1, 2], 3, 4, 5, 6]
    const arr1 = [1]
    const arr2 = [3, 4]
    const arr3 = [5, 6]
    const arr4 = arr1.concat(arr2, arr3)
    console.log(arr4) // [1, 3, 4, 5, 6]
    arr1.push(2)
    console.log(arr4) // [1, 3, 4, 5, 6]

说点通俗点,如果连接的数组中有引用类型,那么这个引用类型是共享的,其实吧,刚开始我说的返回的是浅拷贝,你就应该懂了。

对象也是可以连的
    const arr1 = [1]
    const arr2 = [3, 4]
    const arr3 = {
      a: 1,
      b: 2
    }
    const arr4 = arr1.concat(arr2, arr3)
    console.log(arr4) // [1, 3, 4, {a:1, b:2}]
Symbol.isConcatSpreadable

对象有一个Symbol.isConcatSpreadable属性,表示在使用concat方法是是否展开(注意这里是作为参数时是否展开)

  • 数组是默认展开的
  • 对象是默认不展开的

数组默认展开

    const arr1 = [1]
    const arr2 = [3, 4]
    const arr3 = arr1.concat(arr2)
    console.log(arr3) // [1, 3, 4]  arr2展开了
    const arr1 = [1]
    const arr2 = [3, 4]
    arr2[Symbol.isConcatSpreadable] = false
    const arr3 = arr1.concat(arr2)
    console.log(arr3) // [1,[3,4]] arr2没有展开

对象默认不展开

    const arr1 = [1]
    const obj2 = {
      a: 1,
      b: 2
    }
    const arr3 = arr1.concat(obj2)
    console.log(arr3) // [1,{a:1, b:2}] 对象默认不展开
    const arr1 = [1]
    const obj2 = {
        // 注意这个地方要加length属性,如果你要展开的话
      length: 2,
      0: 2,
      1: 3
    }
    obj2[Symbol.isConcatSpreadable] = true
    const arr3 = arr1.concat(obj2)
    console.log(arr3) // [1,2,3]

字符串的concat方法

示例

  const str1 = 'aa'
    const str2 = str1.concat('bb')
    console.log(str2) // aabb

MDN上强烈建议使用赋值操作符+, +=)代替 concat 方法。感觉了解一下就行了

博客

欢迎访问我的博客www.smartxy.cc

### JavaScript `concat` 方法详解 #### 字符串连接功能 在 JavaScript 中,`concat()` 是一种用于字符串操作的方法。该方法接收任意数量的参数,并将这些参数作为字符串依次附加到调用它的原始字符串之后,最终返回一个新的组合后的字符串对象[^1]。 ```javascript let str1 = "Hello"; let resultStr = str1.concat(" ", "World", "!"); // 结果:"Hello World!" console.log(resultStr); ``` 上述代码展示了如何利用 `concat()` 将多个字符串片段拼接在一起形成完整的问候语句。 #### 数组合并特性 除了处理字符串外,`concat()` 还可以应用于数组之间。当作用于数组时,它会按照传入参数列表中的先后次序来追加新元素至原数组末端,从而构建出一个全新的联合数组实例而不改变原有数据结构[^3]。 ```javascript const array1 = ['a', 'b']; const combinedArray = array1.concat(['c'], ['d', 'e']); // 输出: ["a", "b", "c", "d", "e"] console.log(combinedArray); ``` 这段示例说明了怎样借助 `concat()` 实现多维数组间的无缝衔接。 #### 动态脚本加载场景下的应用 值得注意的是,在某些特定情境下——比如动态向页面注入外部资源文件(如 `.js` 文件),也可以巧妙运用 `concat()` 来辅助完成这一过程。不过这里提到的应用并非直接针对 `concat()` 的常规用途而是作为一种间接手段参与到了整个流程当中[^4]。 ```html <script> var scriptElement = document.createElement('script'); scriptElement.type = 'text/javascript'; scriptElement.src = 'externalLibrary.js'.concat('?v=', new Date().getTime()); document.head.appendChild(scriptElement); </script> ``` 在此处,为了防止浏览器缓存影响最新版本库文件的有效获取,通过给 URL 参数加上时间戳的方式实现了强制刷新的效果。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值