1.解决函数内的this指向数组
(1)能够在函数外提早声明变量 _this/=thisapp
(2)经过apply和call来修改函数内的this指向dom
两者的区别:函数
两者的用法不同,就是参数形式不同 fn.call(obj,a,b)/fn.apply(obj,[a,b])this
两者表明的是将函数内的this换成obj以后而后把fn调用了spa
(3)bind修改函数内的this3d
fn.bind(obj,a,b) 只是替换了this可是不调用fn,返回的仍是函数regexp
fn.bind(obj,a,b)() 带上()就调用了对象
2.案例分析blog
这就至关于写成了下面这种形式
为何用了call以后里面的names仍是张三不是李四?
fn.call(obj)是fn继承了obj中的全部属性,只要是继承的能够当作是共有的,天生自带的是私有的,在使用的时候,私有的有就不会找共有的
3.变量交换
4.找出数组中最大项和最小项
例子:var a=[45,26,15,54,36,8,4]
(1)借助math中的max
Math.max.apply(null,a) 返回值就是最大值
(2)借助数组中sort()
(3)假设法
5.对数组排序的方法
(1)借助array中的sort(function(a,b){return a-b])
(2)冒泡排序
通常用于数据排序 游戏排名
6.Math 数值对象
Js自带的类 array number string function date math regexp boolean
Math类 math对象,研究它的部分属性和方法
数学中的弧度和角度
(1)弧度的 π Math.PI
(2)Math.sqrt(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中的最小值(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的正切值 对边/邻边