>  기사  >  웹 프론트엔드  >  Math.max()는 매개변수 없이 무엇을 반환합니까? 왜?

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

青灯夜游
青灯夜游앞으로
2021-06-02 10:34:091817검색

이 기사에서는 매개변수 없이 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으로 문의하시기 바랍니다. 삭제