【es6】数组字符串扩展

1 js语言下一代的标准 2015年6月发布

作用 编写大型的项目(模块化)

es5 (变量覆盖,全局变量污染)

//数组的扩展


> console.log(...[1,2,3])
1 2 3
undefined
> let arr=[1,2,3]
undefined
//把数组当做参数传给函数
> function get(x,y,z){
... console.log(x);
... console.log(y);
... console.log(z);
... }
undefined
//es5
> get.apply(null,arr)
1
2
3
undefined
//es6
> get(...arr)
1
2
3
undefined
> 
> > let a=1
undefined
> const arr = [
... ...(a>0?['a']:[]),
... 'b']
undefined
> arr
[ 'a', 'b' ]
> let b=[...[],1]
undefined
> b
[ 1 ]
> (...[1,3])
> 报错 只有函数调用的时候才可以放在小括号里面

//替代apply
// 怎么连接两个数组 ?
> let a=[1,2,3]
undefined
> let b=[6,7]
undefined
> a.concat(b)
[ 1, 2, 3, 6, 7 ]
// assign
> a
[ 1, 2, 3 ]
> b
[ 6, 7 ]
> Array.prototype.push.apply(a,b)
5
> a
[ 1, 2, 3, 6, 7 ]

2 数组的扩展

含义:es6新增的处理数组的一些方法(语法糖)

作用:更简便的处理我们的数组

3 扩展运算符

… 拆包 打包的过程

1 函数调用(把数组当做参数传给函数)

2 放置表达式

//取最大值
> let arr=[14,4,56]
undefined
> Math.max.apply(null,arr)
56
> Math.max(...arr)
56
> 

3 注意 …[] 和没写是一样的
只有函数调用的时候才可以放在小括号里面

四 复制 (只是复制指针第一层数据变,就变)

浅克隆 (第一层数据变,不变)
concat,apply,push assign,展开运算符
深克隆(第二层以至于更深层的变,不变)

let arr=[12,34,56]
undefined
> let arr1=arr;
undefined
> arr1[0]=78;
78
> arr
[ 78, 34, 56 ]
> 
>   // 复制 指针指向同一个地址
>     浅克隆  深克隆
>    let arr0=[1,2,3]
undefined
> let arr01=arr0.concat()
undefined
> arr01[0]=2
2
> arr0
[ 1, 2, 3 ]
> 
> let arr_0=[1,2,3]
undefined
> let arr_1=[...arr_0]
undefined
> arr_1[0]=2
2
> arr_0
[ 1, 2, 3 ]
// 深克隆
let arr=[{a:1},2,3]
undefined
> let arr1=[...arr]
undefined
> arr1[0].a=2
2
> arr
[ { a: 2 }, 2, 3 ]
>    // ? 怎么实现深克隆 > let arr=[{a:1},2,3]
undefined
> let arr0=JSON.parse(JSON.stringify(arr))
undefined
> arr0[0].a=5
5
> arr
[ { a: 1 }, 2, 3 ]
> arr0
[ { a: 5 }, 2, 3 ]
> 

五 字符串的扩展

作用 : 为了更好地处理我们的字符串

1 为了更好地处理换行

2 更方便的处理字符串中的变量

3 可以调用函数

4 可以做嵌套

// 模板字符串  ``

// let s = '我爱我的祖国和\n我的母亲'

// let s1 = `我爱我的祖国和
// 我的母亲`
// console.log(s1);

// let a = '123'

// let b = '我爱我的祖国还有'+a+'我的老婆'

// let c = `我爱我的祖国还有${a}我的老婆`
// console.log(c);


// function get(){
//     return '祖国'
// }

// let a = `我爱我的${get()}`


// console.log(a);

let arr = [1,2,3]

const str = (arr)=>{
    return  `我是第一级字符串
    ${arr.map((value)=>{return `${value}`})}
    `
}

console.log(str(arr));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值