# 函式作為引數
匿名函式作引數:
function
f1(fn)
//fn是引數,最後作為函式使用了,函式是可以作為引數使用
//傳入匿名函式f1(
命名函式作引數:
function
f1(fn)
//命名函式
functionf2(
)f1(f2)
;
函式作為引數的時候,如果是命名函式,那麼只傳入命名函式的名字,沒有括號
給乙個陣列,對陣列進行排序
var arr =[1
,100,20
,200,40
,50,120,10
];//排序
然而並沒有達到想要的樣子,由於sort
取決於具體實現,因此無法保證排序的時間和空間複雜性。
查閱文件可以發現,其實sort
有乙個引數
arr.sort([comparefunction])
排序後的陣列。請注意,陣列已原地排序,並且不進行複製。
注意:
如果沒有指明comparefunction
,那麼元素會按照轉換為的字串的諸個字元的unicode位點進行排序。例如 「banana」 會被排列到 「cherry」 之前。當數字按由小到大排序時,9 出現在 80 之前,但因為(沒有指明comparefunction
),比較的數字會先被轉換為字串,所以在unicode順序上 「80」 要比 「9」 要靠前。
如果指明了comparefunction
,那麼陣列會按照呼叫該函式的返回值排序。即 a 和 b 是兩個將要被比較的元素:
因此,我們需要改造一下上面的**,將寫入一段比較函式提高sort
的準確性
從大到小
var arr =[1
,100,20
,200,40
,50,120,10
];//排序---函式作為引數使用,匿名函式作為sort方法的引數使用,那麼此時的匿名函式中有兩個引數,
從小到大:
var arr =[1
,100,20
,200,40
,50,120,10
];//排序---函式作為引數使用,匿名函式作為sort方法的引數使用,那麼此時的匿名函式中有兩個引數,
此方法可以比較字串以及數字,若只需要單獨比較數字,而非字串的話,有更加簡單的方法
從大到小:
var arr =[1
,100,20
,200,40
,50,120,10
];arr.
sort
(function
(obj1, obj2));
console.
log(arr)
;
從小到大:var arr =[1
,100,20
,200,40
,50,120,10
];arr.
sort
(function
(obj1, obj2));
console.
log(arr)
;
js函式高階
fn fn.call 普通函式呼叫 則函式中this window obj.sayhello 物件呼叫 函式中this 該物件 new student 構造函式呼叫 this 例項物件 btn.onclick fun 通過事件觸發 this指的是繫結事件物件 setinterval function...
js高階函式
filter用於對陣列進行過濾。它建立乙個新陣列,新陣列中的元素是通過檢查指定陣列中符合條件的所有元素。注意 filter 不會對空陣列進行檢測 不會改變原始陣列 其中,函式 function 為必須,陣列中的每個元素都會執行這個函式。且如果返回值為 true,則該元素被保留 函式的第乙個引數 cu...
js 函式高階
所有例項物件都有乙個特別的屬性 顯式原型與隱式原型的關係 原型鏈object.prototype function.prototype.proto 理解分類 生命週期 包含哪些屬性 函式執行上下文建立和初始化的過程 函式 測試題1 function a var a console.log typeo...