JS基础-函数

936 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天点击查看活动详情

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);
}

rest参数只能现在最后面,必须用...标识