002、JavaScript—ES6

一、数组中新增的方法

1、Array.of()

// Array.of():函数作用:将一组值,转换成数组
var arr = Array.of(1,2,3,4);
console.log(arr);// [1,2,3,4]

2、Array from函数

// Array.from:将伪数组转换为数组
var aLi = Array.from(document.getElementsTagName(“li”));
console.log(aLi instanceof Array);
3、Array.find()

// 作用:通过条件查找数据,如果条件符合返回第一个符合条件的数据
var arr = [1,2,3,4];
var n = arr.find(function(item,index,array){
return item>3;
})

console.log(n) // 4
4、Array.findIndex()

// 查找数组中符合条件的数据的下标,
// 查找到返回相对应下标,没有查找到返回undefine
var arr = [1,2,3,4];
var n = arr.findIndex(function(item,index,array){
return item>3;
})

console.log(n) // 3
5、Array.fill()

// 对数组进行填充
// 语法:arr.fill(“填充的值”,开始下标,结束下标)

var arr = [10,20,30,40];
arr.fill(“Alley”,1,3);
// [10, “Alley”, “Alley”, 40]

二、for of && iterator

1、for of

/*
for of循环 必须是遍历的可迭代的对象
for of兼容性还不够,移动端安卓微信浏览器貌似不支持,Safari的可以;
web端IE支持也不够,chrome可以。
for in 循环 key值代表的是属性
for of 循环 item代表的是值
*/

var arr = [10,20,30,40];
for(let item of arr){
console.log(item);// 10 20 30 40
}
2、iterator

/*
iterator是一种机制,它是一种接口。为各种不同的数据结构提供了统一的
访问机制。任何数据只要有了iterator接口,就可以完成遍历操作
作用:
1、为各种数据结构,提供统一接口,简便访问接口
2、使数据结构的成员能够按照某种次序排列
3、ES6新增的for of循环 iterator接口主要提供for of消费
*/

// 手写iterator接口
function iterator(arr){
let index = 0;
return {
next(){
if(index<arr.length){
return {value:arr[index++],done:false}
}else{
return {value:undefined,done:true}
}
}

}

}

var obj = [1,2,3,4];
let it = iterator(obj);
it.next();// {value: 1, done: false}
it.next()// {value: 2, done: false}
it.next();// {value: 3, done: false}
it.next()// {value: 4, done: false}
it.next()// {value: undefined, done: false}
/*
1、iterator遍历的过程:
每一次调用next方法都会返回数据结构的当前成员信息,具体来说,
就是返回一个包含value和done的属性对象,其中value属性是当前对象,
done属性是一个布尔值,表示遍历是否结束
2、ES6规定,凡是具有Symbol.iterator属性的数据结构都具有Iterator接口
3、对象默认是没有Symbol.iterator属性的,因此如果想要进行遍历,必须手
动添加
*/
三、函数

1、函数参数默认值

// ES6之前函数如何设定默认值
function fn(x){
var x = x || 0;
}

// ES6函数默认值
function fn(x = 0){}
// 如果传递了就用传递的参数,如果没有传递则x值等于0
2、剩余参数

function fn(a,…rest){
console.log(…rest);// [2,3,4,5]
}

fn(1,2,3,4,5);
// fn这个函数中 a接收对应参数1 …rest以数组形式接收剩余参数
3、箭头函数

// 语法一:
var fn = (a)=>{
console.log(a);
}
// 简单的来说箭头函数就是将function 换成了()=>

// 语法二:
var fn = a=>a;
// 当前函数意思为 返回函数a这个值,如果不写{}默认表示return

//语法三:

var fn = a =>({});
// 当前函数意思为 返回一个对象

/*
箭头函数特点:
1、没有this指向,this的指向会指向声明时离自己最近的那个作用域的对象
2、箭头函数中没有arguments这个参数
3、不能当做构造函数
4、箭头函数不能当做generator函数
*/

四、Set集合

/*
Set:集合
1、它类似于数组,但成员的值是唯一的,没有重复的值,并且是无序的
2、set是一个构造函数
3、set每次执行完毕以后都会返回一个set,因此可以通过链式操作来进行
操作
*/

let s = new Set();
//添加
s.add(“a”).add(“b”);

//删除 返回值是一个布尔值
s.delete(“a”);

//判断a是否为set的成员返回一个布尔值
s.has(“a”);

//清除所有,没有返回值
s.clear();

//返回所有键名
s.keys();
//返回所有value值
s.values()

//返回所有键值对
s.entries()

//通过for of可以得到每一个值

五、Map字典类型结构

/*
1、字典:用来存储不重复key的hash结构,不同于set集合,字典使
用的[键,值]的形式来存储的
2、map执行完毕后都会返回一个map因此可以进行链式操作
3、特点:
普通对象只能通过字符串来当做key值,但是Map可以用任意值来当做key值
*/

1、创建map对象
let map = new Map([
[“a”,1];
])
console.log(map);// {“a”=>1}

2、获取map长度
    map.size

3、添加数组
    map.set("key",val);

4、获取map值
    map.get("key")

5、删除数据
    map.delete("key");

6、判断当前map中是否存在某个值
    map.has("key");

7、清除所有数据
    map.clear();

8、获取所有map key值
    map.keys();

9、获取所有map value值
    map.values()

10、获取所有map键值对
    map.entries()

11、遍历map对象
    forEach

//注意:map中key值得顺序都是按照添加的顺序来排列的

声明:来自IT狗的成长日记,仅代表创作者观点。链接:https://eyangzhen.com/3034.html

IT狗的成长日记的头像IT狗的成长日记

相关推荐

关注我们
关注我们
购买服务
购买服务
返回顶部