LastPoem / Restart

2 stars 0 forks source link

ES6-之前被忽略的部分内容 #71

Open LastPoem opened 3 years ago

LastPoem commented 3 years ago

一、变量的解构赋值

1.数组的解构赋值 没太多可说的,可以通过这种方法进行变量赋值。

例:

var a = 1
var b = 2
var c = 3

var [a, b, c] = [1, 2, 3]

解构时运行指定默认值。默认值可以引用解构赋值的其它变量,但该变量必须已经声明。

2.对象的解构赋值 在很多时候都会使用的操作,尤其是在处理后台返回的数据时。 举个例子: 从后台返回的数据为res: { code: "20000", data: [ { routeName: 'ceshi', value: 12 }, { routeName: 'ceshi1', value: 14 }, { routeName: 'ceshi3', value: 6 }, ] } 此时,需要放在页面上的数据应该是这样的: [ { name: "--", count: 0 } ]

此时可以同时用到数组的map方法和对象的解构赋值。两者结合是这样的:

let needData = res.data.map( ({ routeName, value}) => ({ name: routeName, count: value }) ) 在参数中把res.data数组中的每一个元素(对象)解构,并在方法体里使用。

二、字符串扩展

1.字符串遍历接口 ES6为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历

for(let char of 'foo') { console.log(char) }

2.字符串包含 传统上,JavaScript只有indexOf方法确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法: includes() 返回布尔值,表示是否找到了参数字符串 startsWith() 返回布尔值,表示参数字符串是否在源字符串头部 endsWith() 返回布尔值,表示参数字符串是否在源字符串尾部。 都支持第二个参数,表示开始搜索的位置。

3.重复 repeat()方法返回一个新字符串,表示将原字符串重复n次。参数是小数则会取整。

4.补全长度 ES7 推出了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。 padStart() padEnd()

'x'.padStart(5, 'ab') // 'ababx' 'x'.padEnd(5, 'ab') // 'xabab'

5.模板字符串 The value of a is ${a} 值得一提的是,模板字符串可以当做普通字符串使用,也可以用来定义多行字符串,或在字符串中嵌入变量。模板字符串中还能调用函数。模板字符串甚至还能嵌套。 模板字符串还有更复杂的功能。暂时不提

三、数组扩展

1.Array.from() Array.from 方法用于将两类对象转化为真正的数组:类数组对象和可遍历对象。

如一个类数组对象: let arrayLike = { '0': 'a', '1': 'b', length: 3 }

ES5写法: var arr1 = [].slice.call(arrayLike)

ES6写法:let arr2 = Array.from(arrayLike)

2.将一组值转化为数组 Array.of(1,2.3) // [1, 2, 3]

3.数组实例的copyWithin() 数组实例的copycopyWithin()方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。会修改当前数组 接收三个参数: target: 必需。从该位置开始替换数据 start:可选。从该位置开始读取数据,默认为0,可为负数 end:可选。到该位置前停止读取数据,默认等于数组长度。可为负数

[1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5]

4.找到符合条件的数组成员 find方法和findIndex()

find用于找到第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined

[1, 4, -5, 3, 9].find( (n)=> n<0) // -5

[1, 5, 10, 15].find(function(value, index, arr) { return value > 9; }) // 10

[1, 5, 10, 15].find(function(value, index, arr) { return value > 9; }) // 10 find的回调可以接受三个参数:当前值,当前位置和原数组。

findIndex则找到第一个符合条件的数组成员的位置。找不到则返回-1

5.数组实例的fill() fill 方法使用给定值,填充一个数组 ['a', 'b', 'c'].fill(7) // [7, 7, 7]

6.数组遍历 ES6提供三个新方法用于遍历数组: entries(). keys(), values()

keys是对键名的遍历,values是对键值得遍历,entries是对键值对的遍历。