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的正切值 對邊/鄰邊