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/