JS学习(二)

JS函数

在JavaScript中,定义函数的方式如下:

function fun1(args) {
//函数体
}

或是

var fun1 = function(args){
//函数体
}

这两种方法都可以用来定义方法。

arguments

arguments是js函数自带的一个参数,可以拿到函数传入的所有实参,哪怕函数定义中没有对应的形参。

拿到参数的arguments是一个数组我们对 arguments进行数组操作。

   function a1(a){
      
      console.log(arguments[1]);
      return a;
   }
   a1(1,2,3,4,5,6);

控制台输出:
在这里插入图片描述
再ES6下,还可以使用rest来获取多传入的实参:

   function a1(a){
      
      console.log(arguments[1]);
      return a;
   }
   a1(1,2,3,4,5,6);

控制台输出:
在这里插入图片描述

js变量的作用域

js变量有自己的作用域,在函数中定义的变量,在函数外无法引用,我们把他叫做局部变量
不在任何函数内定义的变量的是全局变量,全局变量可以被内部函数引用。

   var b =33;
   function fun1(){
       var a =20;
       return a+b;
   }
   console.log(a);//调用函数内变量a

控制台输出:
在这里插入图片描述

   var b =33;
   function fun1(){
       var a =20;
       return a+b;
   }
   console.log(fun1());//函数内调用变量b

控制台输出:
在这里插入图片描述

JS高阶函数

  • map()
    var arr = [1,2,3,4,5,6,7,8,9];
    var newArr = arr.map(function(x){
        return x * x;
    })
    console.log(newArr);
    

控制台输出:
在这里插入图片描述
可以看出,map函数把数组中每一个元素都拿出来执行了函数体的内容,然后组成了一个新的数组。

  • reduce()
  var arr = [1,2,3,4,5,6,7,8,9];
  var newArr = arr.reduce(function(total,next){
      return total + next;
  })
  console.log(newArr);

控制台输出:
在这里插入图片描述
执行过程是这样的,reduce方法里面需要传入两个参数,然后分别传入数组的第一和第二个参数,执行函数体的内容,将执行结果赋值给第一个参数,然后继续依次取出数组内容,放入第二个参数中传入,执行函数体。最后的结果是第一个参数,也就是代码中的total。reduce() 可以用来进行数组累加,累乘等操作。

  • filter()
   var arr = [1,2,3,4,5,6,7,8,9];
   var newArr = arr.filter(function(x){
       return x%2==0;
   })
   console.log(newArr);

控制台输出:
在这里插入图片描述
filter() 用于筛选出符合函数体的内容,即保留return值为true的值。

  • sort()
   var arr = [1,3,2,5,4,8,7,6,9];
   var newArr = arr.sort();
   console.log(newArr);

控制台输出:
在这里插入图片描述
用于给数组排序,按照编码顺序。

  • trim()
    trim就是用来取出字符两边的空格

  • every()

   var arr = [2,4,6,8,10];
   var newArr = arr.every(function(x){
       return x % 2 ==0;
   });
   console.log(newArr);

如果数组内所有元素经过函数体返回的都是true,则最后返回true,有一个为flase,则最后为flase。

  • find()
    find()方法用查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined
  • findIndex()
    与find()的不同是最终返回的是对应元素所在索引。
  • forEach()
    var arr = [2,4,6,8,10];
    arr.forEach(function(x){
        console.log(x);
    });

在这里插入图片描述

本文参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023021053637728

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值