箭头函数 | |||||
---|---|---|---|---|---|
变量名=参数=>函数体 var f=function(v){ return v; } var f=v=>v;
箭头函数调用函数
let f=function a(v){ return v; } //let f=v=>a(v); function a(v){ console.log(v*v); } f(3)
//rest 参数
//...变量名
function fun(...values){//arguments console.log(values); } fun(1,2,31,32,1)
//...扩展运算符 数组的扩展
let f=(...nums)=>a(nums); function a(v){ console.log(v); }; var arr=[1,2,3,4]; f(...arr);
不传;
var f=()=>"11";
f();
//参数为空
function f(){ return '123'; } let f=()=>"123" f() let f=(n1,n2)=>(n1+n2) f(1,3) let f=(n1,n2)=>{return n1+n2} f(1,3)
//对象(
由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号。)
let f=(n1,n2)=>({name:n1,age:n2}); f(1,3)
|
SET |
---|
类似数组 成员是唯一的(重复的值 ) set本身是一个构造函数,有对应的方法和属性 const arr4=new Set().add(1).add(2).add(3); add(); arr4.add(1); arr4.add(2); arr4.add(3); const arr5=new Set([1,2,3,2]);//会去重 console.log(arr5)//{1,2,3} //成员总数 arr5.size;//3 delete()删除 返回布尔值 has()是否会存在 返回布尔值 判断是否为set成员 clear()清除所有的set成员,没有返回值 转换为数组
扫描二维码关注公众号,回复:
1587475 查看本文章
const arr6=new Set(['q','w','e','r']);//{'q','w','e','r'} const arr7=Array.from(arr6); console.log(arr7)//['q','w','e','r'] console.log(arr6.has('a'));console.log(arr6.clear());
上面代码说明, 另外, |
//key()键的值
//values()值
//entries 键值对
const arr8=new Set(['a','b','c']); for(var list of arr8.keys()){ console.log(list);// a b c }
for(var list of arr8.values()){ console.log(list);// a b c }
for(var list of arr8.entries()){ console.log(list);//['a','a'] ['b','b']['c','c'] }
//合并
let a=new Set(['a','b','c','d']);
let b=new Set(['a','e','f']);
let c=new Set([...a,...b]);
//交集 |
let arr2=new Set(['a','d'.'e']);
let arr3=new Set([..arr1].filter(x=>arr2.has(x)))
MAP(对象) 键值对的集合 |
---|
var obj={ name:'111', age:32 }; const m=new Map(); m.set("str","111");//m ==//{"str" => "111"} m.get("str");//111它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。 上面代码使用 Map 结构的 set
方法,将对象
o
当作
m
的一个键,然后又使用
get
方法读取这个键,接着使用
delete
方法删除了这个键。
上面的例子展示了如何向 Map 添加成员。作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。
如果对同一个键多次赋值,后面的值将覆盖前面的值。
上面代码对键 const m=new Map([['x',1],['y',2],['z',3]]); [...m];//转换成数组 let m1=new Map([...m]);//转换成Map m1 Map转换成对象 const m=new Map([['x',1],['y',2],['z',3]]); let obj={}; for(let[k,v] of m){ obj[k]=v; } console.log(obj);//{x: 1, y: 2, z: 3} Map 结构转为数组结构,比较快速的方法是使用扩展运算符( const map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); [...map.keys()] // [1, 2, 3] [...map.values()] // ['one', 'two', 'three'] [...map.entries()] // [[1,'one'], [2, 'two'], [3, 'three']] [...map] // [[1,'one'], [2, 'two'], [3, 'three']] let arr=['a','b','c']; for(let v of arr){//打印出来的是里面的值 console.log(v); } let arr1=['a','b','c']; for(let v1 in arr1){//打印出来的是索引 console.log(v1); } let obj1={'x':1,'y':2}; for(let a in obj1){ console.log(a);//x y }; for(let a in obj1){ console.log(obj1[a]);//1 2 }; |
扩展 |
---|
//字符串扩展
var str="hello world";
//
str.substring(1,4);
//
str.substr(1,4);
//
str.indexOf(1,4)
str.startWith("hello",3);//字符串是否在头部,从下标为3的位置开始查找
str.endsWith("hello",3);//字符串是否在尾部
str.includes("o");//是否存在字符串
str.repeat("2");//重复N次
//补全
var s='s';
s.padStart(4,'xy');//xyxs
s.padEnd(4,'xy');//sxyx
//如果长度大于要 补全的长度,就不会有操作
var s1='s22211';
s1.padStart(4,'xy');//s22211
//模板字符串
$(".list").html('<li>'+item.name+'</li>');
$(".list").html(`<li>${item.name}</li>`);
$(result).each(function(index,item){
$(".list").html(`<li>${item.name}</li>`);
})
$(result).each((index,item)=>{
$(".list").html(`<li>${item.name}</li>`);
})
//数值的扩展
//Number.parseInt();
//Number.parseFloat();
//函数扩展
//ES5
function fun(x,y){//分页 如果sessionStorage有记录则取那一条,否则每页10条数据
y=y||'10';
console.log(x,y);
}
fun=(x,y)=>{
y=y||'10';
console.log(x,y);
}
fun(1,2)
//ES6
function fun(x,y="10"){//分页 如果sessionStorage有记录则取那一条,否则每页10条数据
console.log(x,y);
}
|