이 기사에서는 매개변수 없이 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
[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 중국어 웹사이트의 기타 관련 기사를 참조하세요!