Home >Web Front-end >JS Tutorial >What does Math.max() return without parameters? Why?

What does Math.max() return without parameters? Why?

青灯夜游
青灯夜游forward
2021-06-02 10:34:091950browse

This article will introduce to you what Math.max() will return without parameters? Why? It has certain reference value. Friends in need can refer to it. I hope it will be helpful to everyone.

What does Math.max() return without parameters? Why?

Math.max() is a JS built-in method that can return the largest one from the passed parameters. For example:

Math.max(1, 2, 3); // => 3

If Math.max() only uses one parameter, what is the result?

Math.max(1); // => 1

As expected, the maximum value of a number is itself.

But, what is the result if Math.max() is called without parameters?

Math.max(); // => -Infinity

Math.max() without parameters returns -Infinity. Next, let’s take a look at why this is the case.

The maximum value in an array

Before discussing this issue, let’s first look at how Math.max() is obtained from the array maximum value.

Math.max(num1, num2, ..., numN)Accepts multiple numeric parameters and returns their maximum number.

If we want to get the maximum value from an array, we can use the spread operator:

const numbers1 = [1, 2, 3];

Math.max(...numbers1); // => 3

Maximum value in two arrays

Now, Let's look at something interesting. Given two arrays, we first determine the maximum value in each array, and then determine the maximum value after getting the two maximum values.

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

Array[1, 2, 3] The maximum value is 3, array[0, 6]The maximum value is 6, and finally the maximum value of 3 and 6 The value is 6.

Nothing wrong, let’s continue.

If an array is empty, what will the result be? Let’s try it:

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

Now, when the first array is empty, the maximum value above is also 6.

What is more interesting here is the return value of Math.max(...numbers1). When the numbers1 array is empty, this is different from calling without parameters. Math.max() is the same, the result is -Infinity.

So Math.max(max1, max2) is equivalent to Math.max(-Infinity, 6), and the result is 6.

Now you know whyMath.max()returns when called without arguments-Infinity:This is defined on an empty collection A way of max function.

This is similar to addition. The -Infinity of max is the same as the 0 of addition.

Math.min() also has the same behavior - when called without arguments, it returns Infinity.

Regarding the maximum operation on real numbers, -Infinity is called Identity element

This article is over here, here is a challenge: you Can you write a sum(num1, num2, ..., numN) function that is exactly the same as Math.max()? Its function is to find the sum of all elements,

What is the Identity element? If you don’t understand it, please leave a message to add some knowledge.

English original address: https://dmitripavlun.com/javscript-math-max-infinity/

Author: Dmitri Pavlutin

Translator: Front-end Xiao Zhi

For more programming-related knowledge, please visit: Introduction to Programming! !

The above is the detailed content of What does Math.max() return without parameters? Why?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete