javascript console -infinity,这是什么意思?

时间:2019-03-19 16:24:32

标签: javascript ecmascript-6 console

我正在学习JavaScript ES6,当我运行此代码时,刚在控制台上发现了-infinity:

let numeros = [1, 5, 10, 20, 100, 234];
let max = Math.max.apply(numeros);
console.log(max);

这是什么意思?

致谢

2 个答案:

答案 0 :(得分:8)

Function#apply的第一个参数是thisArg,您只是将thisArg作为数组传递,这意味着它在没有任何参数的情况下调用Math#max

按照MDN docs :

  

如果未提供任何参数,则结果为-Infinity。

为了解决您的问题,请将Mathnull设置为thisArg

let max= Math.max.apply(Math, numeros );

let numeros= [1,5,10,20,100,234];
    let max= Math.max.apply(Math, numeros );
    
    console.log( max );


按照@FelixKling的建议,从ES6开始,您可以使用spread syntax提供参数。

Math.max(...numeros)

let numeros = [1, 5, 10, 20, 100, 234];
let max = Math.max(...numeros);

console.log(max);

答案 1 :(得分:1)

改为使用ES6 Spread

let numeros = [1, 5, 10, 20, 100, 234];
let max = Math.max(...numeros);
console.log(max);


@Pranav C Balan所述,-InfinityMath.max()在没有给出参数的情况下应该返回的值(由spec定义):

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max#Description