剩余参数
1、eg:
//args是一个数组
sum(first,...args){
console.log(first); // 10
console.log(args); // [20,30]
}
sum(10,20,30)
2、与解构共同使用
let stu=['wangwu','zhangsan','lisi']
let [s1,...s2]=students
console.log(s1); // wangwu
console.log(s2); //['zhangsan','lisi']
3、扩展运算符
(1)扩展运算符可以将数组或者对象转为用逗号分割的参数序列
let arr=[1,2,3]
...ary // 1, 2, 3
console.log(...ary); // 1 2 3
// 没有输出逗号,是因为console.log把逗号当成了参数分割符
(2)将伪数组或者可遍历对象转换为真正的数组
let oDiv=doucment.getElementByTagName('div')
oDiv=[...oDiv]
4、Array的扩展方法
(1)构造函数方法Array.from()
let arrlike={
'0':'a',
'1':'b',
'2':'c',
'length':3,
};
// 接收一个参数
let arr2=Array.from(arrlike) // [''a','b','c']
// 接收两个参数,作用类似与map方法,用来对每个对象进行处理,将处理后的值放入返回的数组
let arrlike={
'0':'1',
'1':'2',
'length':2,
}
let newArray =Array.from(arrlike,item=>item*2)
console.log(newArray ); //[2,4]
(2)find()
用来找出第一个符合条件的元素,如果没有返回undefined
let ary=[
{
id:'1',
name:'张三'
},
{
id:'2',
name:'李四'
},
]
let taget=ary.find(item=> item.id==2)
console.log(taget); // {id:'2',name:'李四'},
(3) findIndex()
用来找出第一个符合条件的元素的位置,如果没有返回-1
let ary=[1,3,10,30]
let index = ary.findIndex((value,index)=> value>9)
console.log(taget); // 2
(4) includes()
表示某个数组是否包含给定的值,返回布尔值
[1,2,3]includes(2) // true
[1,2,3]includes(4) // false
5.String的扩展方法
(1)模板字符串
使用反引号定义
let name=`zhangsan`
模板字符串解析变量
let name='张三';
let sayHello=`hello,my name is ${name}`
console.log(sayHello ) // hello,my name is 张三
模板最字符串可以换行
let stu={
name:"zhangsan",
age:20
}
let html=`<div> <span>${stu,name}</span>
<span>${stu,age}</span></div>`
模板字符串中可以调用函数
fn(){
return hello
}
let getH=`你好,${fn()}`
console.log(getH) // 你好,hello
(2)startWith()和endsWidth()
startWith:表示参数字符串是否在原字符串的头部,返回布尔值
endsWidth:表示参数字符串是否在原字符串的尾部,返回布尔值
let str='Hello world !'
str.startWith('Hello ') // true
str.endsWidth('!') // true
(3) repeat()
将原字符串重复n次,返回一个新字符串
'x'.repeat(3) // 'xxx'
6、Set数据结构
类似与数组,但元素都是唯一的,没有重复的值
const s =new Set();
Set函数可以接收一个数组作为参数用来初始化
const set =new Set([1,2,3,4,4]); // [1,2,3,4]
console.log(set.size) // 4
7、Set的实例方法
add(value):添加某个值,返回Set结构本身
delete(value):删除某个值,返回布尔值,表示删除是否成功
has(value):返回一个布尔值,表示该值是否是Set的成员
clear():清除所有成员,没有返回值
const s=new Set();
s.add(1).add(2)
s.delete(2)
s.has(1)
s.clear()
遍历
Set与数组一样,也有forEach方法,用于对每个成员执行某种操作,没有返回值
s.foreach(value=>console.log(value) )