国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

為什么Math.max()>Math.min()的結(jié)果是false

sevi_stuo / 3134人閱讀

摘要:的方法和方法分別用于求一系列參數(shù)中的最大和最小值,如果傳入的參數(shù)不是數(shù)字類型,會(huì)對(duì)該參數(shù)利用方法進(jìn)行類型轉(zhuǎn)換。

從一道題目說(shuō)起,下面這個(gè)比較的結(jié)果是true還是false

javascriptMath.max() > Math.min();

在瀏覽器里測(cè)試很快會(huì)得知它的結(jié)果是false,這跟直觀的理解可不一樣,max怎么不比min大呢?
這就要從Mathmaxmin方法說(shuō)起了。

Mathmax方法和min方法分別用于求一系列參數(shù)中的最大和最小值,如果傳入的參數(shù)不是數(shù)字類型,會(huì)對(duì)該參數(shù)利用Number方法進(jìn)行類型轉(zhuǎn)換。看幾個(gè)例子:

javascriptMath.max(1,2,3,4,5); //5
Math.min(2,3,4,5,6); //2

如果參數(shù)不是有效數(shù)字:

javascriptMath.max(1);                             //1
Math.max(NaN);                           //NaN
Math.max("This is a fucking String");    //NaN
Math.max("5");                           //5
Math.max(true);                          //1
Math.max(undefined);                     //NaN  
Math.max(null);                          //0

接下來(lái)考慮一種情況,假如只給Math.maxMath.min方法傳一個(gè)參數(shù)且參數(shù)是有效數(shù)字,那返回什么?

javascriptMath.min(5);     //5
Math.max(5);     //5
Math.max(0);     //0
Math.min(0);     //0

吶,如果只有一個(gè)有效數(shù)字參數(shù)的話,返回值就是傳入值;這個(gè)似乎很好理解,總共就一個(gè)值,沒(méi)得比,最大或最小肯定就你了;不過(guò),這可不是“沒(méi)得比”的情況,我們來(lái)試試真正的“沒(méi)得比”的情況,

javascriptMath.max();
Math.min();

這就是開(kāi)頭題目里的形式,不給它傳任何參數(shù);在控制臺(tái)里很容易測(cè)試出來(lái)他們的值一個(gè)是Infinity,一個(gè)是-Infinity;

吶,關(guān)上控制臺(tái),再想想,哪個(gè)的結(jié)果是Infinity,哪個(gè)的結(jié)果是-Infinity
結(jié)果是很違反直覺(jué)的

javascriptMath.max();  //-Infinity
Math.min();  //Infinity

照這么看,就能知道為什么Math.max()>Math.min()的結(jié)果是false了;
但是為什么Math.max()結(jié)果是-Infinity,還是很奇怪。
在ECMAScript Language Specification文檔中,也只是強(qiáng)制規(guī)定了:

  

If no arguments are given, the result (of max method)is -∞

但是強(qiáng)制記一個(gè)知識(shí)點(diǎn)是很痛苦的,我希望能找到一個(gè)可以解釋得通的思路;最終在這里找到一個(gè)我覺(jué)得靠譜的解釋,
根據(jù)我的二次理解,可以這么解釋:

  

就說(shuō)Math.max方法,實(shí)際上可以認(rèn)為這個(gè)方法有一個(gè)隱含的參數(shù),假定這個(gè)隱含的參數(shù)是x;

  

當(dāng)我們只傳一個(gè)參數(shù)有效數(shù)字a時(shí),我們寫(xiě)作:Math.max(a),實(shí)際上計(jì)算的是Math.max(a,x),當(dāng)然我們知道它的結(jié)果是a

  

同時(shí),無(wú)論我們傳入的數(shù)字a是什么,它都返回a,那么什么樣的x在跟任意數(shù)a比較最大的一個(gè)時(shí),永遠(yuǎn)返回a呢,那x只能是-Infinity了,這樣,當(dāng)不傳參數(shù)執(zhí)行Math.max()時(shí),實(shí)際上是Math.max(-Infinity);,結(jié)果返回-Infinity,這樣就解釋得通了。

  

Math.min()同理。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/85811.html

相關(guān)文章

  • 大廠算法面試之leetcode精講3.動(dòng)態(tài)規(guī)劃

    摘要:動(dòng)態(tài)規(guī)劃問(wèn)題一定會(huì)具備最優(yōu)子結(jié)構(gòu),才能通過(guò)子問(wèn)題的最值得到原問(wèn)題的最值。另外,雖然動(dòng)態(tài)規(guī)劃的核心思想就是窮舉求最值,但是問(wèn)題可以千變?nèi)f化,窮舉所有可行解其實(shí)并不是一件容易的事,只有列出正確的狀態(tài)轉(zhuǎn)移方程才能正確地窮舉。 大廠算法面試之leetcode精講3.動(dòng)態(tài)規(guī)劃視頻教程(高效學(xué)習(xí)):點(diǎn)擊學(xué)習(xí)目錄:1.開(kāi)篇介...

    番茄西紅柿 評(píng)論0 收藏2637
  • 怪異JavaScript系列(三)

    摘要:本文的思想源自于在上的演講。我收集這些例子的主要目的是將它們整理并清楚理解它們的原理。著主要是因?yàn)榇罄ㄌ?hào)也是函數(shù)定義語(yǔ)法的一部分。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,得到了金山軟件等眾多知名用戶的認(rèn)可。 譯者按: JavaScript有很多坑,經(jīng)常一不小心就要寫(xiě)bug。 原文: What the f*ck JavaScript? 譯者: Fundebug 為了保證可讀性...

    XboxYan 評(píng)論0 收藏0
  • 什么 Math.min() 比 Math.max() 大?(續(xù))

    摘要:本來(lái)以為是無(wú)參調(diào)用時(shí)返回了運(yùn)算的幺元,后來(lái)細(xì)琢磨,好像沒(méi)有什么關(guān)系,對(duì)于運(yùn)算集合上的二元運(yùn)算,如果滿足,則是運(yùn)算的幺元。乘法運(yùn)算的幺元是,因?yàn)椤5俏覀兌x函數(shù)或者函數(shù),如果不傳遞參數(shù)時(shí),返回幺元的話也是不合理的。 昨天心血來(lái)潮寫(xiě)了一篇文章:為什么Math.min() 比 Math.max() 大? 為什么很多人會(huì)有這種疑惑,是因?yàn)榉噶讼氘?dāng)然的錯(cuò)誤——望文生義。Math.min() 作...

    xiguadada 評(píng)論0 收藏0
  • Math.min() 什么Math.max() 大?

    摘要:考慮如下代碼按照常規(guī)思路,這段代碼應(yīng)該輸出,畢竟最小值應(yīng)該小于最大值。為什么會(huì)這樣呢還得去查查的相關(guān)文檔。是什么呢是中全局對(duì)象的一個(gè)屬性,在瀏覽器環(huán)境中就是對(duì)象的一個(gè)屬性,表示無(wú)窮大。繼續(xù)閱讀為什么比大續(xù) 考慮如下代碼: var min = Math.min(); var max = Math.max(); console.log(min < max); 按照常規(guī)思路,這段代碼應(yīng)該輸出...

    hyuan 評(píng)論0 收藏0
  • JavaScript中8個(gè)常見(jiàn)陷阱

    摘要:然而,不會(huì)在年的基礎(chǔ)上加,而只是表示年。閉包這是一個(gè)經(jīng)典的面試題雖然期望輸出,然而實(shí)際上卻不會(huì)。因?yàn)榈谛械臎](méi)有在正確的環(huán)境下執(zhí)行。 譯者按: 漫漫編程路,總有一些坑讓你淚流滿面。 原文: Who said javascript was easy ? 譯者: Fundebug 為了保證可讀性,本文采用意譯而非直譯。另外,本文版權(quán)歸原作者所有,翻譯僅用于學(xué)習(xí)。 這里我們針對(duì)JavaScri...

    doodlewind 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<