一,箭头函数,模板字符串
模板字符串
`模板字符串${变量}`
函数
function fun(){ };//function fun用>=代替 参数只有一个可以省略小括号 语句只有一句可以省略大括号
箭头函数
()>={};// 箭头函数没有自己的this
value=>value*2;
二,Set数据结构
const s=new Set();
s.add(2).add(5);//向Set结构添加元素
s.delete(2);//删除
s.has(2);//查找Set解构是否有这个值 返回布尔值
s.clear();//清除Set里的值
s.add(1);
s.forEach(value => console.log(value));//遍历Set结构
三,剩余参数
1,剩余参数
利用剩余参数求和
function fun(...args){//剩余参数 args是一个数组
let s=0;
args.forEach(value=>{//利用箭头函数遍历数组
s+=value;
});
console.log(s);
}
fun(1,2,3,5,8);//输出19
fun(1,5);//输出6
四,扩展运算符
用扩展运算符合并数组
let arr=[1,2,3];
let arr1=[4,5,6];
console.log(...arr);//将数组拆分成以逗号分隔的数据 输出1 2 3 (console.log会将逗号转空格)
let arr3=[...arr,...arr1];//扩展运算符应用 合并数组
//arr3=arr.push(...arr1);
console.log(arr3);//[1,2,3,4,5,6];
五,对象解构
{
let person={
name:'张三',
age:20,
sex:'男'
}
let {name,age,sex}=person;//对象解构
console.log(name);//输出张三
console.log(age);//输出20
console.log(sex);//输出男
let {name:myname,age:myage}=person;//对象解构 变量的名字和对象属性名字相匹配 匹配成功将对象属性的值赋值给变量
console.log(myname);//输出张三
console.log(myage);//输出20
}
六,数组解构
let arr=[1,2,3];
let arr1=[4,5,6];
let [a,b,c]=arr;//数组解构
console.log(a);//输出1
console.log(b);//输出2
console.log(c);//输出3
let [num,...py]=arr1;//剩余参数 配合 数组解构 使用
console.log(num);//输出4
console.log(py);//输出[5,6]
七,字符串
var str=' safd '
var str1=str.trim();//去除首尾两端的空格 返回一个字符串
console.log(str1);//输出safd
let string1='Hello world!';
string1.startsWith('Hello');//true 判断是否以什么开头 返回一个布尔值
string1.endsWith(' ');//false 判断是否以什么结尾 返回一个布尔值
let string2=string1.repeat(3);//将原字符串重复3次 返回一个新字符串
console.log(string2); //输出Hello world!Hello world!Hello world!
八,数组
var arr=[21,5,4,55,1];
var sum=0;
arr.sort((p1,p2)=>{//改变原数组
return p1-p2 //升序排序
//return p2-p1 //降序排序
})
let temp=arr.find(value=>value===55);//查找数组是否有满足条件的元素,找到了返回那个值 没找到返回undefined
console.log(temp);//输出55
let index=arr.findIndex(value=> value>40);//查找第一个满足条件的元素 返回一个下标
console.log(index);//输出3
let flag1=arr.includes(21);//查找数组中包不包含 返回一个boolean值
console.log(flag1);//输出true
arr.forEach(function(value,index,arr){//遍历数组
console.log(index+' '+value);
sum+=value;
});
console.log(sum);//输出86
var newarr=arr.filter(function( value,index,arr){//筛选数组,返回一个新数组
return value>10;
})
console.log(newarr);//输出21,55
var flag=arr.some(function(value,index,arr){//查找数组是否有满足条件的元素,返回一个boolean值
return value<10;
})
console.log(flag);//输出true
Object.defineProperty
let person={
name:'张三',
sex:'男'
};
Object.defineProperty(person,age,{//给对象增加属性 参数对象名 属性名 值和值的属性
value:18,//值
enumerable:true,//控制属性是否可以枚举,默认为false
writable:true,//控制属性是否可以被修改,默认为false
configurable:true//控制属性是否可以被删除,默认为false
//当有人读取person的age属性时,get函数就会被调用,且返回值就是age的值
get(){
console.log('有人读取age属性了');
}
//当有人修改person的age属性时,set函数就会被调用,且返回值就是age的值
set(value){
console.log('有人修改了age属性且值是'+value);
}
})