zoukankan      html  css  js  c++  java
  • call() apply()以及bind() Math

     

    1.解决函数内this指向:

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

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

        <1>二者区别 用法是一样的,就是参数形式不一样 fn.call(obj,a,b)/fn.apply(obj,[a,b])

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

     (3)bind修改函数内的this:

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

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

    2.

    就相当于写成

     

    为什么用了call之后里面的names还是张三不是李四?

       fn.call(obj)是fn继承了obj中的所有属性,只要是继承的可以看成是公有的,天生自带的事1私有的,在使用的时候,私有的就不会找公有的。

    3.变量交换:

     

     

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

    (1)借助math中的max.

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

    (2)借助数组中的sort()

      

     (3)假设法 比较法

      

      

    对数组排序的方法:

      (1)借助array中的sort(function(a,b){return a-b})

      (2)冒泡排序:

        

    二分查找

     

    4.Math数值对象:

      Js自带的类:array function number string boolean date math regexp

     Math 类 math对象 又研究一堆的属性和方法

    数学中的弧度和角度:

     (1)弧度的π Math.PI

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

        (3)Math.abs(x):返回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中的最小值,a,b,c,d必须是数字

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

     (9)Math.round(x) 返回对x四舍五入后的数值

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

     (11)Math.cos(x)返回x的正弦值,邻边比斜边.

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

     (13)Math.asin(x)

     (14)Math.acos()

     (15)Math.atan()

     

     

     

    12.4补充:DOM

      DOM0级事件元素绑定多个click最后只执行最后一个click;

      DOM2级事件元素绑定多个click,都要执行。

        注意:当绑定的多个事件名,函数名,事件发生阶段三者完全一样时,才执行最后一个

        div.addEventListner("click",fn1,false)

        第二个参数尽量不要使用匿名函数。

      区别DOM0级和DOM2级:

      (1)DOM0级绑定多个相同的事件,后者会覆盖前者,DOM2级不会;

      (2)DOM0级只适合普通事件,DOM2级还有指定的事件类型如DOMContentLoaded(当html文档结构加载完成之后执行)这个事件就是jQuery中的$(document).ready()

      (3)事件取消:DOM0级事件直接复制null,DOM2级需使用removeEventListner()

          

      

    键盘事件:onkeydown  onkeyup

      j键盘事件触发时,浏览器天生给方法一个叫keyBoardEvent的对象,所有键盘的信息都在这个对象上。

      我们发现ev有个属性keyCode键盘编码。

      

    鼠标右击事件:ontextmenu

     

     

     

     

  • 相关阅读:
    C++范围解析运算符::的使用
    C程序的内存布局
    ARM中LDR伪指令与LDR加载指令
    每天一个linux命令(12):more命令
    C++ explicit关键字
    C++内联函数详解
    C++友元详解
    C++ new操作符详解
    CDN技术详解笔记
    字符串匹配(KMP 算法 含代码)
  • 原文地址:https://www.cnblogs.com/yuanjingjing/p/10097364.html
Copyright © 2011-2022 走看看