Map和Set
简单应用,通过key获得value set()新增或修改 delete()删除
var Map=new Map([['tom',100],['稀土掘金',90]]); var name=Map.get('tom') Map.set('jk',100); console.log(name) <<< 100
Set:无序不重复的集合
var set=new Set([4,1,1,1,])
set可以去重set.add()
添加set.delete()
删除console.log(set.has(3))
是否包含某个元素! 可以使用iterator来遍历迭代我们的Map、Srt! 利用 for..of来遍历数组内的数值
函数
方法:对象(属性,方法)
定义函数
绝对值函数
- 定义方式一
function abs(x){ if(x>=0){ return x; }else{ return -x; } }
一旦施行到return代表函数结束,返回结果! 如果没有执行return,函数执行完后也会返回结果,结果是undefined
- 定义方式二
var abs=function(x){ if(x>=0){ return x; }else{ return -x; } }
- function(x){.....}这是一个匿名函数,但是可以把结果可以赋值给前面的变量,通过abs就可以调用函数
- 方式一和方式二等价!
调用函数
abs(10) //10
abs(-10) //10
- 参数问题 : JavaScript可以传任意个参数,也可以不接受参数 参数进来是否存在问题?假设不存在参数,我们应该如果规避
var abs=function(x){ if(typeof x! == 'number'){ throw 'not a number';} if(x>=0){ return x; }else{ return -x; } }
我们可以手动抛出异常来规避
- 当参数存在多个时
argument
arguments是一个JS免费赠送的关键字 代表,传递进来的所有的参数,是一个数组
var abs=function(x){ console.log("x =>"+x); for (vaar i=0;i<argements.length;i++){ console.log(argements[i]); } if(x>=0){ return x; }else{ return -x; } }
问题 :arguements 包含所有的参数,我们有时候想使用多余的参数来进行附加操作,需要排除已有参数
rest
ES6引入的新特性,获取除了已经定义之外的所有参数
function aaa(a,b,...rest){ console.log("a=>"+a); console.log("b=>"+b); console.log(rest); }