欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中apply和Math.max()函數(shù)的問題及區(qū)別介紹

 更新時(shí)間:2018年03月27日 11:51:07   投稿:mrr  
這篇文章主要介紹了js中apply和Math.max()函數(shù)的問題,本文給大家?guī)韮煞N答案,每一種答案給大家介紹的非常詳細(xì),在文章底部給大家提到了js中Math.max.apply和Math.max的區(qū)別,感興趣的朋友一起看看吧

下面給大家介紹js中apply和Math.max()函數(shù)的問題,具體內(nèi)容如下所示:

var arr=[1,3,6,3,7,9,2];
console.log(Math.max.apply(null,arr));

一直搞不懂為什么這樣可以算出一個(gè)數(shù)組的最大值?一直想不明白,請js高手指教一下。

答案1

Function.apply()是JS的一個(gè)OOP特性,一般用來模擬繼承和擴(kuò)展this的用途,對于上面這段代碼,可以這樣去理解:

XXX.apply是一個(gè)調(diào)用函數(shù)的方法,其參數(shù)為:apply(Function, Args),

Function為要調(diào)用的方法,Args是參數(shù)列表,當(dāng)Function為null時(shí),默認(rèn)為上文,

Math.max.apply(null, arr)

可認(rèn)為是

apply(Math.max, arr)

然后,arr是一個(gè)參數(shù)列表,對于max方法,其參數(shù)是若干個(gè)數(shù),即

Math.max(a, b, c, d, ...)

當(dāng)使用apply時(shí),把所有參數(shù)加入到一個(gè)數(shù)組中,即

arr = [a, b, c, d, ...]

代入到原式,

Math.max.apply(null, [a, b, c, d, ...])

實(shí)際上等同于

Math.max(a, b, c, d, ...)

在此處,使用apply的優(yōu)點(diǎn)是在部分JS引擎中提升性能。

答案2

Math.max()方法,支持傳遞多個(gè)參數(shù),比如:Math.max(1,4,2,3,7,5,6)

但是它不支持直接傳遞一個(gè)數(shù)組作為參數(shù),比如:Math.max(new Array(1,4,2,3,7,5,6))。

這里,只要我們有方法把數(shù)組,一個(gè)一個(gè)拆分開來,傳遞到Math.max()方法中,就實(shí)現(xiàn)了傳遞數(shù)組的方法。

所有函數(shù)都有apply(作用域鏈,參數(shù))這個(gè)方法,這個(gè)函數(shù)的“參數(shù)”,接收一個(gè)數(shù)組,并且是將數(shù)組中的每個(gè)值,分開來,傳遞給調(diào)

補(bǔ)充:

Javascript中Math.max.apply和Math.max的區(qū)別

Javascript中的Math.max方法可以求出給定參數(shù)中最大的數(shù)。

> Math.max('1','2','3.1','3.2')
< 3.2
> Math.min(1,0,-1)
< -1 

但如果是數(shù)組,就不能這樣調(diào)用了。

此時(shí)就用到了apply方法:

apply 方法 (Function) (JavaScript)
調(diào)用函數(shù),并用指定對象替換函數(shù)的 this 值,同時(shí)用指定數(shù)組替換函數(shù)的參數(shù)。
apply([thisObj[,argArray]])
thisObj
  可選。 要用作 this 對象的對象。
argArray

  可選。 要傳遞到函數(shù)的一組參數(shù)。
巧妙地使數(shù)組也可以調(diào)用Math.max和Math.min。

> Math.max.apply(null, ['1','2','3.1','3.2'])
< 3.2
> Math.min.apply(null, [1,0,-1])
< -1

總結(jié)

以上所述是小編給大家介紹的js中apply和Math.max()函數(shù)的問題及區(qū)別介紹,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • uniapp開發(fā)小程序的開發(fā)規(guī)范總結(jié)

    uniapp開發(fā)小程序的開發(fā)規(guī)范總結(jié)

    uni-app 是一個(gè)使用 vue.js 開發(fā)跨平臺(tái)應(yīng)用的前端框架,下面這篇文章主要給大家介紹了關(guān)于uniapp開發(fā)小程序的開發(fā)規(guī)范,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 如何自己實(shí)現(xiàn)JavaScript的new操作符

    如何自己實(shí)現(xiàn)JavaScript的new操作符

    new大家肯定都不陌生,單身沒有對象的時(shí)候就new一個(gè),很方便。那么它在創(chuàng)建實(shí)例的時(shí)候,具體做了哪些操作呢?今天我們就來一起分析一下。
    2021-04-04
  • 詳談javascript中DOM的基本屬性

    詳談javascript中DOM的基本屬性

    DOM節(jié)點(diǎn)是一個(gè)對象,它有著一些屬性。其中有些是只讀的,有些可以直接進(jìn)行更改(updated on-the-fly)。今天我們就來具體探討下DOM的基本屬性,希望對大家能有所幫助
    2015-02-02
  • Js 刷新框架頁的代碼

    Js 刷新框架頁的代碼

    Js刷新框架頁方法,有時(shí)候需要控制下框架里面的頁面內(nèi)容的刷新,下面的方法整理的比較詳細(xì)了,需要的朋友可以參考下。
    2010-04-04
  • JavaScript轉(zhuǎn)換與解析JSON方法實(shí)例詳解

    JavaScript轉(zhuǎn)換與解析JSON方法實(shí)例詳解

    這篇文章主要介紹了JavaScript轉(zhuǎn)換與解析JSON方法,實(shí)例分析了JavaScript解析json的技巧,并附帶分析了jQuery解析與轉(zhuǎn)換json的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • JS三目運(yùn)算(三元運(yùn)算)方法詳解

    JS三目運(yùn)算(三元運(yùn)算)方法詳解

    下面小編就為大家?guī)硪黄狫S三目運(yùn)算(三元運(yùn)算)方法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • JavaScript實(shí)現(xiàn)簡單計(jì)算器

    JavaScript實(shí)現(xiàn)簡單計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • JS原生手寫輪播圖效果

    JS原生手寫輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了JS原生手寫輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • javascript 防止刷新,后退,關(guān)閉

    javascript 防止刷新,后退,關(guān)閉

    常常會(huì)用到的停留頁面的操作.兼容IE,FF.實(shí)現(xiàn)代碼如下。
    2010-08-08
  • JS?中的類Public,Private?和?Protected詳解

    JS?中的類Public,Private?和?Protected詳解

    這篇文章主要介紹了JS中的類Public,Private和Protected詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08

最新評(píng)論