When I type in an array into the parameter of the javascript math minimum and maximum functions, it returns the correct value:
console.log( Math.min( 5 ) ); // 5
console.log( Math.max( 2 ) ); // 2
var array = [3, 6, 1, 5, 0, -2, 3];
var minArray = Math.min( array ); // -2
var maxArray = Math.max( array ); // 6
However, when I use the function with no parameters, it returns an incorrect answer:
console.log( Math.min() ); // Infinity
console.log( Math.max() ); // -Infinity
This one returns false:
console.log( Math.min() < Math.max() );
Why does it do this?
Of course it would, because the start number should be
InfinityforMath.min. All number that are lower than positive infinity should be the smallest from a list, if there are no smaller.And for
Math.maxit’s the same; all numbers that are larger than negative infinity should be the biggest if there are no bigger.So for your first example:
Math.min(5)where5is smaller than positive infinity (Infinity) it will return5.Update
Calling
Math.min()andMath.maxwith an array parameter may not work on every platform. You should do the following instead:Where the first parameter is the scope argument. Because
Math.min()andMath.max()are "static" functions, we should set the scope argument to null.