gpt4 book ai didi

javascript - 为什么 Math.max(...[]) 在 ES2015 中等于 -Infinity?

转载 作者:数据小太阳 更新时间:2023-10-29 04:31:52 26 4
gpt4 key购买 nike

Math.max([]) 将是 0

[..[]][]

但为什么 Math.max(...[]) 在 ES2015 中等于 -Infinity

最佳答案

Math.max([]) 发生的事情是 [] 首先转换为字符串,然后转换为数字。它实际上不被视为参数数组。

使用 Math.max(...[]) 时,数组被视为通过展开运算符的参数集合。由于数组为空,这与不带参数调用相同。哪个根据docs产生 -Infinity

If no arguments are given, the result is -Infinity.


一些示例显示调用数组的区别:

console.log(+[]); //0    [] -> '' -> 0
console.log(+[3]); //3 [] -> '3' -> 3
console.log(+[3,4]); //Nan
console.log(...[3]); //3
console.log(...[3,4]); //3 4 (the array is used as arguments)
console.log(Math.max([])); //0 [] is converted to 0
console.log(Math.max()); // -infinity: default without arguments
console.log(Math.max(...[])); // -infinity
console.log(Math.max([3,4])); //Nan
console.log(Math.max(...[3,4])); //4

关于javascript - 为什么 Math.max(...[]) 在 ES2015 中等于 -Infinity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com