Math.max()는 매개변수 없이 무엇을 반환합니까? 왜?

青灯夜游
풀어 주다: 2021-06-02 10:34:09
앞으로
1806명이 탐색했습니다.

이 기사에서는 매개변수 없이 Math.max()가 반환하는 내용을 소개합니다. 왜? 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

Math.max()는 매개변수 없이 무엇을 반환합니까? 왜?

Math.max()는 전달된 매개변수 중 가장 큰 값을 반환할 수 있는 JS 내장 메서드입니다. 예:Math.max()是 JS 内置的方法,可以从传入的参数中,返回最大的一个。例如:

Math.max(1, 2, 3); // => 3
로그인 후 복사

如果Math.max()只使用一个参数,结果是怎么样的?

Math.max(1); // => 1
로그인 후 복사

正如预期的那样,一个数字的最大值就是它本身。

但是,如果调用不带参数Math.max()结果又是怎么样的呢?

Math.max(); // => -Infinity
로그인 후 복사

不带参数的Math.max()返回的结果是-Infinity,接下来,我们来看看为什么会这样。

一个数组中的最大值

在探讨这个问题之前,我们先来Math.max()是如何从数组中得到最大值的。

Math.max(num1, num2, ..., numN)接受多个数字参数,并返回它们的最大数量。

如果想从数组中获取最大值,我们可以使用展开运算符:

const numbers1 = [1, 2, 3]; Math.max(...numbers1); // => 3
로그인 후 복사

两个数组中的最大值

现在,我们来看看有趣的事情,给定两个数组,我们先确定每个数组中的最大值,然后在从获取这两个最大值在确定出其中的最大值。

const numbers1 = [1, 2, 3]; const numbers2 = [0, 6]; const max1 = Math.max(...numbers1); const max2 = Math.max(...numbers2); max1; // 3 max2; // 6 Math.max(max1, max2); // => 6
로그인 후 복사

数组[1, 2, 3]最大值是 3,数组[0, 6]大最值是 6,最后 3 和 6 的最大值是 6.

没毛病,我们继续。

如果一个数组是空的,结果又会是怎么样的, 我们动手试试:

const numbers1 = []; const numbers2 = [0, 6]; const max1 = Math.max(...numbers1); const max2 = Math.max(...numbers2); max1; // -Infinity max2; // 6 Math.max(max1, max2); // => 6
로그인 후 복사

现在,当第一个数组为空时,上面的最大值也是6

这里比较有趣的是Math.max(...numbers1)的返回值,当numbers1数组为空时,这与调用不带参数的Math.max()相同,结果是-Infinity

所以Math.max(max1,max2)等价于Math.max(-Infinity, 6),结果为6。

现在就知道为什么Math.max()在不带参数的情况下调用时返回-Infinity:这是在一个空集合上定义max函数的一种方式。

这与加法类似,max的-Infinity和加法的0是一样的。

Math.min()也具有相同的行为-当不带参数调用时,它将返回Infinity

关于对实数的最大运算,-Infinity称为Identity元素

到这里本文就完啦,这里来个挑战:你能否编写一个与Math.max()完全一样的sum(num1, num2, ..., numN)rrreee

Math.max()가 하나의 매개변수만 사용하는 경우 결과는 무엇입니까?

rrreee예상대로 숫자의 최대값은 그 자체입니다.

그런데 매개변수 없이 Math.max()를 호출하면 결과는 어떻게 될까요?
rrreee

매개변수 없이Math.max()가 반환한 결과는-Infinity입니다. 다음으로 왜 그런지 살펴보겠습니다.

배열의 최대값

이 문제를 논의하기 전에 먼저Math.max()가 배열에서 최대값을 가져오는 방법을 살펴보겠습니다.

Math.max(num1, num2, ..., numN)은 여러 숫자 매개변수를 허용하고 최대값을 반환합니다.

배열에서 최대값을 얻으려면 스프레드 연산자를 사용할 수 있습니다.rrreee

두 배열의 최대값

이제 두 개의 배열이 주어지면 흥미로운 점을 살펴보겠습니다. 먼저 각 배열의 최대값을 결정한 다음 두 개의 최대값을 구하고 그 중 최대값을 결정합니다. rrreee [1, 2, 3]배열의 최대값은 3이고, [0, 6]배열의 최대값은 6이며, 마지막으로 3과 6의 최대값은 6입니다.문제 없습니다. 계속하겠습니다. 배열이 비어 있으면 결과는 어떻게 될까요? 시도해 보겠습니다. rrreee이제 첫 번째 배열이 비어 있으면 위의 최대값도 6입니다. 여기서 더 흥미로운 점은 Math.max(...numbers1)의 반환 값입니다. numbers1배열이 비어 있을 때 이는 Math.max()는 동일하며 결과는 -Infinity입니다. 그래서 Math.max(max1, max2)Math.max(-Infinity, 6)와 동일하며 결과는 6입니다. 이제 인수 없이 호출할 때 Math.max()-Infinity:를 반환하는 이유를 알게 되었습니다. 이는 빈 컬렉션에 max-Infinity는 덧셈의 0과 같습니다. Math.min()도 동일한 동작을 합니다. 인수 없이 호출하면 무한대를 반환합니다. 실수에 대한 최대 연산과 관련하여 -Infinity는 Identity 요소라고 합니다. 이 기사에서는 여기까지입니다. 도전 과제는 다음과 같습니다. Math와 유사한 코드를 작성할 수 있습니까? max ()정확히 동일한 sum(num1, num2, ..., numN)함수, 해당 기능은 모든 요소의 합계를 찾는 것입니다. Identity 요소는 무엇입니까? , 이해가 안 되시면 메시지를 남겨서 지식을 추가해주세요. 영어 원본 주소: https://dmitripavlun.com/javscript-math-max-infinity/저자: Dmitri Pavlutin번역자: Front-end Xiaozhi더 많은 프로그래밍 관련 지식을 보려면 다음을 방문하세요. 프로그래밍 입문! !

위 내용은 Math.max()는 매개변수 없이 무엇을 반환합니까? 왜?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!