函数内this指向+排序+找出数组大小项+Math类

时间:2020-12-13 22:41:03

解决函数内this指向:

  1,可以在函数外提前声明变量  _this/that = this

  2,通过apply()和call()来修改函数内的this指向

    二者区别:

      用法是一样的,参数形式不一样  fn.call(obj,ab)  fn.apply(obj,[a,b])

      二者代表的是将函数内的this换成obj之后,然后把fn调用

  3,bind修改函数内的this:

    fn.bind(obj,a,b)只是替换了this,但不调用fn,返回的是函数

    fn.bind(obj,a,b)()

找出数组中的最大项,最小项:

  var  arr=【45,26,15】

  1,借助math中的max

    var  max=Math.max.apply(null,arr)

  2,借助数组中的sort()

    var fn=function(a,b){

      return  a-b  //从小到大

      return b-a  //从大到小

    }

    var  s=arr.sort(fn)

    console.log(s[s.length-1])

  3,假设法:比较法

    var  max=arr【0】

    var num=null;

    for(var i=1;i<arr.length;i++){

      if(max<arr.length;i++){

            num=max;

          max=arr[i]

          arr[i]=num;

        }

    }

    console.log(max)

对数组排序的方法:

  1,借助array中sort

   var fn=function(a,b){

      return  a-b  //从小到大

      return b-a  //从大到小

    }

  2,冒泡排序:

    var  arr=[11,24,36,56,2]

    var  num=null;

    for(var i=arr.length-1;i>=0;i--){

      for(var j=0;i<=j;j++){

          if(arr[i]>arr[i+1]){

            num=arr[i]

            arr[i]=arr[i+1]

            arr[i+1]=num

          }

       }

      }

Math数值对象:

  js自带的类:regexp,number,Boolean,function,math,date,array,string

math类,math对象,研究出一堆的属性和方法:

  math.pi  180°  弧度的π

  math.sqrt(16)  4  返回平方根

  math.abs(x)  返回的绝对值

  math.ceil(x)  返回x的上舍入

  math.floor(x)  返回x的下舍入

  math.max(a,b,c)  返回abc中的最大值,abc必须是数字

  math.min(a,b,c)  返回abc中的最小值,abc必须是数字

  math.random()  返回0-1之间的随机数

  math.sin(x)  返回x的正弦值

  math.cos(x)  返回x的余弦值

  math.tan(x)  返回x的正切值