STACKOVERFLOW = [];
    turkeycheck = Math.max.apply(null, STACKOVERFLOW);
    if(!turkeycheck){
         // See Below
    }

console.log(turkeycheck);
console.log(turkeycheck.length);

在此处也可以看到:http://jsfiddle.net/L4zgfcmz/5/

只是好奇为什么(!turkey)没有被捕获,但是使用turkeycheck.length显示它是未定义的?如果它是未定义的,那不是说它是错误的吗?

另外,如果turkey是控制台日志记录-Infinity,那么turkeycheck的长度不应该变为11吗?

我只是因为turkey为何设置为'-Infinity'而感到困惑,然后又变成了undefined

最佳答案

-Infinity是一个数值。数字值没有.length属性,因此尝试从中读取将返回undefined。保留在turkeycheck变量本身中的值保持不变,并且如果尝试在记录其长度后尝试记录其值,仍会看到-Infinity值。

var n = 1;
console.log(n.length); // undefined
console.log(n);        // 1

关于javascript - -Infinity实际上如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30051894/

10-09 21:45