call  apply  bind 的区别?

  解决函数内this的指向:

    1.可以在函数外提前声明变量 一般情况下我们用   var _this/that=this

    2.通过apply和call来修改函数this指向

    apply和call的区别?

      用法一样,就是参数形式不一样  (案例: fn.call(obj,a,b)     fn.apply(obj,[a,b]))(禁忌:fn为函数但是不能带())

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

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

  bind适合于事件:call  apply适合于全局变量(在原形上继承)

  fn.call(obj)   (call()一个参数必须是对象)

  解析:是fn继承了obj中的所有属性,只要继承的可以看成是公有的,天生自带的私有的,在使用的时候,私有的就不会找公有的:

  案例:

  function fn(){

    this.name="张三"

    console.log(this.name)

  }

  var obj={

    name:"李四"

  }

  fn.call(obj)  最后的结果还是张三,   他相当于这种写法  fn.prototype.name="李四"

  变量的交换:(举例说明,比如有a杯茶水,还有b瓶饮料,如果想让a杯放饮料,让b瓶放茶水,只能在拿一个空杯,把a杯的茶水放到空杯里面,那么a杯就空了,再把b瓶的饮料,倒进a杯就可以了,那么b杯就空了,再把原来的空杯里面装茶水,倒进b杯就可以了)

  案例:

    var a=4;

    var b=3;

    var n=null;

    n=a;

    a=b;

    b=n;

    console.log(a,b)

  找出数组中最大的值:

  var arr=[45,26,15,54,36,8,4]

  1.借助Math中的max;(最简单的方法)

    Math.max.apply(null,a)  返回值就是最大值;

  2.借助数组中的sort;

    var fn=function(a,b){

      retrun a-b

      }

    var s=a.sort(fn)

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

  3.假设法:(比较法)

  var max=a[0]

  var num=null;

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

    if(max<a[i]){

      num=max;

      max=a[i];

      a[i]=null;

    }

  console.log(max)

  4.冒泡排序

    var num=null;

    for(var j=a.length-1;j<=0;j--){

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

        if(a[i]<a[i+1]){

          num=a[i];

          a[i]=a[i+1];

          a[i+1]=num

        }

      }

    }

  math数值对象;

    js自带的类 基类:object

         子类:Function(函数) Array(数组)  Number(数字)  String(字符串)  Date(日期)  Math(算术)  RegExp(正则)  Boolean(布尔)

    Math()类   math对象,研究他的属性和方法;

  数学中的弧度与角度

    1弧度=╥/180度   1角度=180/╥弧度

  1.弧度中的╥ Math.PI

  2.返回平方根:Math.sqrt(16) 返回16的平方根;

  3.Math.abs(x)  返回数字中的绝对值;

  4.Math.ceil(x)   返回x的上舍入;

  5.Math.floor(x)  返回x的下舍入;

  6.Math.max(a b c d) 返回a b c d中的最大值   (a b c d必须为数值)

  7.Math.min(a b c d) 返回a b c d中的最小值;

  8.Math.random()  返回0-1之间的随机数;

  9.Math.round() 返回四舍五入的数值;

  

  10.Math.sin(x)  返回x的正弦;(对边比斜边)

  11.Math.cos(x) 返回x的余弦; (临边比斜边)

  12.Math.tan(x)  返回x的正切值 (对边比临边)

  13.Math.asin(x)  返回x的反正弦;(知道边求角)

  14.Math.acos(x) 返回x的反余弦; (知道边求角)

  15.Math.atan(x)  返回x的反正切值 (知道边求角)

数组比较大小的几种方法及math是方法的更多相关文章

  1. 【转载】C#使用Math.Ceiling方法对计算结果向上取整操作

    在C#的数值运算中,有时候需要对计算结果进行向上取整操作,支持设定结算结果的有效位数,Math.Ceiling方法是C#中专门用来对数值进行向上取整的方法,此方法和Math.Round方法.Math. ...

  2. js注意点:数组比较大小方法及数组与对象的区别

    (迁移自旧博客2017-04-19) 快速复制数组及数组比较大小方法 首先介绍一下复制数组的方法: var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; var ...

  3. Knockout获取数组元素索引的2种方法,在MVC中实现

    原文:Knockout获取数组元素索引的2种方法,在MVC中实现 在遍历数组.集合的时候,通常要获取元素的索引,本篇体验使用Knockout获取索引的2种方法. 假设有这样的一个模型: namespa ...

  4. php数组合并有哪三种方法

    php数组合并有哪三种方法 一.总结 一句话总结:array_merge():array_merge_recursive():‘+'号 $a = array('color'=>'red',5,6 ...

  5. JavaScript 数组去重的那几种方法

    数组去重是最常见的面试题,现在总结一下我所知道的几种 首先第一个就是es5 最常见的循环比较 var array= [1, 1, 2]; function test(nums) { for (var ...

  6. Java中有四种常见的Map实现方法

    在 HTML5 之前我们做图片预览主流做法有两种,第一种是通过 Flash 插件来做预览,第二种是 Ajax 实现的假预览,也就是说选择图片文件后,图片其实已经异步上传到服务器,服务器处理后返回图片路 ...

  7. 在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定

    今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定. 是这样子的: ]; 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么 ...

  8. JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)

    day46 一丶javascript介绍 JavaScript的基础分为三个       1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...

  9. js中几种实用的跨域方法原理详解(转)

    今天研究js跨域问题的时候发现一篇好博,非常详细地讲解了js几种跨域方法的原理,特分享一下. 原博地址:http://www.cnblogs.com/2050/p/3191744.html 下面正文开 ...

随机推荐

  1. MyEclipse持续性开发教程:用JPA和Spring管理数据(五)

    MyEclipse 3.15 Style——在线购买低至75折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有 ...

  2. 深入理解Linux网络技术内幕——PCI层和网络接口卡

    概述     内核的PCI子系统(即PCI层)提供了不同设备一些通用的功能,以便简化各种设备驱动程序.     PCI层重要结构体如下: pci_device_id     设备标识,根据PCI标志定 ...

  3. L237

    The British parliament on Tuesday rejected overwhelmingly the Brexit deal, further complicating the ...

  4. ABP .Net Core 调用异步方法抛异常A second operation started on this context before a previous asynchronous operation completed

    1.  问题描述 最近使用ABP .Net Core框架做一个微信开发,同时采用了一个微信开发框架集成到ABP,在微信用户关注的推送事件里调用了一个async 方法,由于没有返回值,也没做任何处理,本 ...

  5. ReactNative——UI2.组件生命周期

    对于习惯了iOS开发的同学,可能会对React Native中组件的生命周期很困惑.在iOS中有一个ViewDidLoad来初始化,那么在RN中,又是在哪里呢? 一.看图分析 在下图中描述了React ...

  6. 阿里java面试题

    引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容 ...

  7. Java面试通关要点汇总整理【终极版】

    简历篇 请自我介绍 请介绍项目 基础篇 基本功 面向对象的特征 final, finally, finalize 的区别 int 和 Integer 有什么区别 重载和重写的区别 抽象类和接口有什么区 ...

  8. BC32(hdu5182~5185)

    恩……又是一个悲伤的故事,然后BC做出来一题,因为自己傻逼,可能紧张,也可能是其他,反正没看全题目就敲,敲完WA,WA完改,改完WA,没了……大概五十几分钟WA了五法,然后问了才知道没看全,就这样,后 ...

  9. LG3372 【【模板】线段树 1】

    介绍我的三种算法 1.线段树 既然这题是线段树板子,我还是尊重一下先发这个.跑的时间376ms不是很快,但也还是不错.O(nlogn). #include<iostream> #inclu ...

  10. Jenkins系列之Jenkins配置常用工具和如何下载插件

    上一篇我们介绍了Jenkins的安装,这一篇我们介绍如何配置Jenkins的工具和如何下载插件. 首先我们先来看如何配置工具,这里的工具是指JDK.Ant.Maven.Git等. 1.点击系统管理,如 ...