ESMAScript6进阶版

本文详细介绍了ESMAScript6的多个新特性,包括字符串的扩展如模板字符串和新增操作方法,数组扩展如扩展运算符和Array.from(),对象的简洁表示法及Object.assign()方法,Set和Map数据结构,以及Module语法的export和import命令,帮助开发者深入理解ES6的核心概念。
摘要由CSDN通过智能技术生成

1.字符串的扩展

1.1模板字符串

使用``反引号代替双引号和单引号,可进行换行,使用${}占位符实现拼接

    let name='易烊千玺';
    let age=21;
    document.write(`第一行
                    第二行
                    我的名字是${name}
                    我的年龄是${age}`+"<br/>")

1.2新增的字符串操作方法

方法描述
includes(searchString:string):boolean返回布尔值,表示否找到参数字符串
startsWith(searchString:string):boolean返回布尔值,表示参数字符串是否在原字符串头部
endsWith(searchString:string):boolean返回布尔值,表示参数字符串是否在原字符串尾部
repeat(count:number):boolean返回一个新字符串,表示将原制度穿重复N次
padStart(length:number,string:string):string用于头部补全
padEnd(length:number,string:string):string用于尾部补全
trimStart():string消除字符串头部的空格
trimEnd():string消除尾部的空格

2.数组扩展

2.1扩展运算符

(...)三个点表示,可以将数组转换为用逗号分割的序列

  //扩展运算符
    function aaa(a,...b){
        document.write(a+"<br/>")		//1
        document.write(b)				//2,3,4,5
    }

    aaa(1,2,3,4,5)
//数组添加
let T139=['花花酱'];
    T139.push('刘教授');		
    T139.push(['大表哥','小表弟']);
    document.write(T139+"<br/>")

 2.2Array.from()方法

from()用于将类数组对象或可遍历对象转换可遍历对象转换成一个真正的数组,类数组对象必须有length属性,否则转换出来是空数组

类数组对象的属性必须为数值型或字符串型的数字

//Array.from
    let set1=new Set([1,2,3])
    set1.add(4);		//添加
    set1.delete(3);		//删除
    document.write(Array.from(set1))		//遍历输出

2.3数组的遍历方法

方法描述
keys():iterator对键名的遍历
values():iterator对键值的遍历
entries():iterator对键值对的遍历

示例:

for(let index of ['张三','李四'].keys()){
    console.log(index)		//0,1
}

for(let enle of ['张三','李四'].values()){
    console.log(enle)		//张三,李四
}

for(let [index,enle] of ['张三','李四'].entries()){
    console.log(index,enle)		//0‘张三’,1‘李四’
}

3.对象的扩展

3.1属性的简洁表示法

//普通写法
let name='小明';
let birth='2001/12/23'
const Person={
    name:name,
    birth:birth,
    getInfo:function(){
        console.log(`我的名字是:${this.name},我出生时间是:${brith}`)
    }
}
Person.getInfo();

//简洁写法
const Person1={
    name,
    birth,
    getInf0(){
        console.log(`我的名字是:${this.name},我出生时间是:${this.birth}`);
    }
}
Person1.getInfo();

3.2对象新增方法

①Object.is()方法

用来比较两个值是否严格相等,相等运算符(===)

console.log('abc'==='abc')				//true
console.log(Object.is('abc'==='abc'))	//true
console.log(NaN===NaN)					//false
console.log(Object.is(NaN===NaN))		//true

②Object.assign()方法

用于对象合并

  	let objOne={a:1};
    let objTwo={b:4};
    let objThree={c:5};
   console.log(Object.assign(objOne,objTwo,objThree))		//a:1,b:4,c:5

//如有重复值后一个会把前面一个覆盖实现去重合并
  	let objOne={a:1};
    let objTwo={b:4};
    let objThree={b:4,c:5};
   console.log(Object.assign(objOne,objTwo,objThree))		//a:1,b:4,c:5

3.3对象遍历方法

方法描述
keys():iterator返回参数对象自身的所有课遍历属性的键名
values():iterator返回参数对象自身的所有可遍历属性的键值
entries():iterator返回参数对象自身的所有可遍历属性的键值对数组

示例:

    let obj={foo:'bar',baz:42}
    console.log(Object.keys(obj))		//["foo","bar"]
    console.log(Object.values(obj))		//["bar",42]
    console.log(Object.entries(obj))	//["foo","bar"],["baz",42]

4.set对象

set对象数据结构类似于数组,当成员的值都是唯一的,没有重复值

//数组去重
    let arrt1=[1,2,3];
    let arrt2=[2,3,4,5]
    let arrt3=[...arrt1,...arrt2];  //拼接两个数组
    let set = new Set(arrt3);       //把arrt3转成set
    let arrt4=Array.from(set);      //把set集合转成数组
    document.write(arrt4+"<br/>");

set对象的常用属性和方法

分类名称描述
属性Set.prototype.size返回set实例的成员总数
操作方法Set.prototype.add(value)添加某个值,返回set结构本身
Set.prototype.delete(value)删除某个值,返回一个布尔值,表示删除是否成功
Set.prototype.has(value)返回一个布尔值,表示该值是否为set的成员
Set.prototype.clear()清除所有成员,没有返回值
遍历方法Set.prototype.keys()返回键名的遍历器
Set.prototype.values()返回键值的遍历器
Set.prototype.entries()返回键值对的遍历器
Set.prototype.forEach()使用回掉函数遍历每个成员

示例:

//添加删除
    let set1=new Set([1,2,3])
    set1.add(4);
    set1.delete(3);
    document.write(Array.from(set1))

//set遍历
    let set2=new Set(['千玺','俊凯','王源']);
    for (let intem of set2.keys()){
        console.log(intem)
    }

    for (let intem of set2.values()){
        console.log(intem)
    }

    for (let intem of set2.entries()){
        console.log(intem)
    }

5.Map对象

键值对的集合

const map=new Map([
    ['name','张三'],
    ['tetle','Author']
])
console.log(map)	//  0: {1 => "花花"}
					// 	1: {2 => "小表弟"}
                    //  2: {3 => "大表哥"}

map对象常用属性和方法

分类名称描述
属性Map.prototype.size返回Map实例的成员总数
操作方法Map.prototype.set(key,value)设置键名为key对应的键值为value,返回整个Map结构
Map.prototype.get(key)读取key对应的键值,如果找不到key,返回undefined
Map.prototype.has(key)返回一个布尔值,表示某个键是否在当前Map对象中
Map.prototype.delete(key)删除某个键,返回true,如果删除失败,返回false
Map.prototype.clear()清除所有成员,没有返回值
遍历方法Map.prototype.keys()返回键名的遍历器
Map.prototype.values()返回键值的遍历器
Map.prototype.entries()返回所有成员的遍历器

示例:

  //map
    let map=new Map([[1,'花花'],[2,'小表弟'],[3,'大表哥']]);
    console.log(map)
    for (let intes of map.keys()){
        console.log(intes)			//1,2,3
    }

    for (let intes of map.values()){
        console.log(intes)			//花花,小表弟,大表哥
    }

    for (let intes of map.entries()){
        console.log(intes)			//0: 1			0:2				0:3
									//1: "花花"	   1;小表弟		1:大表哥
    }

6.Module语法

export命令和import命令

实现包与包之间的调用

 

 可多个方法同时导入导出,用逗号隔开

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值