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命令
实现包与包之间的调用
可多个方法同时导入导出,用逗号隔开