ES6学习随笔(二)

一、变量的解构赋值
  • 字符串的解构赋值
    字符串解构赋值时,被转换成类似数组的对象,逐字符去赋值。类似数组的对象都有length属性,也可以对解构目标的length属性进行解构。比如let { length: len } = "aaaaa"可以得到len = 5,这里:前是匹配的模式,:后是接收的属性。
  • 数值和布尔值解构赋值会先转换为对象。
  • 函数的参数解构赋值时可以使用默认值。下面是书上的相关代码。
function move({ x=0, y=0 }= {}){
	return [x,y]
}
move({x:3});				// [ 3, 0]


function mover({ x,y } = { x:0, y:0 }){
	return [x,y]
}
move({x:3})				// [3,undefined]
move({})					// [undefined,undefined]
move()						// [0,0]

第一种写法是为xy指定默认值,所以xy没有就是默认0;而第二种写法,是给move这个函数的参数指定默认值,如果往里面传了东西进去,那么它就不会去解构出x:0,y:0这个默认值了

  • 圆括号尽量不使用,它只有在模式内或者整个语句才能用。比如[ (www) ] = [3]
二、字符串
  • 超过\u0000-\uFFFF的字符,可以在码点外加上大括号实现正确读取。否则会被理解为两个字符。例如\u20BB7被理解成\u20BB+7,而ES6:\u{20BB7}就可以实现正确读取
  • includes()、startWith()、endWith()用来确定目标字符串内是否包含给定字符串。
let s = 'hello' 
s.includes('el',2)	//true

他们都可以携带第二个参数,表示开始搜索的位置(从n到尾),但是endWith不一样,他是前n个字符(反过来的从n到尾,就是把尾当成头的从n到尾。)

  • repeat()将原字符串重复,向下取整,参数不支持负数和Infinity
'hello'.repeat(2.8)	//'hellohello'
  • padStart()、padEnd()补全字符串
'hello'.padStart(10,'a')	//'helloaaaaa'

第二个参数可以省略,默认用空格补全。如果第一个参数比原来还小,就不改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值