使用 sort() 對數(shù)組 [3, 15, 8, 29, 102, 22] 進(jìn)行排序昆著,輸出結(jié)果
[ 102, 15, 22, 29, 3, 8 ]
我覺得對于一個js的方法,這里指數(shù)組方法,一般要記住以下幾個方面
- 參數(shù)休弃,有幾個介牙,幾個必選,幾個可選奋岁,用途是什么
- 返回值
- 是否修改原有數(shù)組
語法
arrayObject.sort(sortby)
參數(shù)
sortby 可選思瘟。規(guī)定排序順序。必須是函數(shù)闻伶。
返回值 是否修改原有數(shù)組
沒有返回滨攻,直接修改原數(shù)組
無參數(shù)怎么排序
先把對象轉(zhuǎn)成字符,再按照字符編碼的順序進(jìn)行排序
使用場景
由小到大排序
[3, 15, 8, 29, 102, 22].sort((a,b) => {return a - b});
第 48 題:call 和 apply 的區(qū)別是什么蓝翰,哪個性能更好一些
1光绕,call()、apply()畜份、bind() 都是用來重定義 this 這個對象的诞帐!
012704.png
obj.myFun.call(db); // 德瑪年齡 99
obj.myFun.apply(db); // 德瑪年齡 99
obj.myFun.bind(db)(); // 德瑪年齡 99
以上出了 bind 方法后面多了個 () 外 爆雹,結(jié)果返回都一致停蕉!
由此得出結(jié)論,bind 返回的是一個新的函數(shù)顶别,你必須調(diào)用它才會被執(zhí)行谷徙。
2,對比call 驯绎、bind 完慧、 apply 傳參情況下
012705.png
obj.myFun.call(db,'成都','上海'); // 德瑪 年齡 99 來自 成都去往上海
obj.myFun.apply(db,['成都','上海']); // 德瑪 年齡 99 來自 成都去往上海
obj.myFun.bind(db,'成都','上海')(); // 德瑪 年齡 99 來自 成都去往上海
obj.myFun.bind(db,['成都','上海'])(); // 德瑪 年齡 99 來自 成都, 上海去往 undefined
所以呢剩失,區(qū)別就在于 參數(shù) call是有一個寫一個 而 apply是需要將參數(shù)打包成一個數(shù)組
值得一提的是 call其實參數(shù)也可以是數(shù)組
let params = [1,2,3,4]
xx.call(obj, ...params)
在有了es6之后 數(shù)組打開可以更加地方便