划分数字类型是Infinity?

时间:2017-10-25 19:08:23

标签: javascript

提前抱歉这是一个显而易见的问题。我正在划分两个变量并接收Infinity作为我的结果。以下是详细信息:

typeof a //'number'
typeof b //'number'
typeof (a-b) //'number'
typeof ((a-b)/(b)) //'number'
     a - b = xxx.xxxxx //this works
     (a - b)/b = Infinity

以下是一些更多细节:

a and b are five decimal places (XXX.XXXXX)
// the variables are generated from ....
var z = document.getElementById('foo').getBoundingClientRect()
var y = document.getElementById('bar').getBoundingClientRect()
var a = z.x
var b = y.x

foo是一个div,bar是一个表格 a是在函数外部生成的 b在函数内部生成.on('scroll', ....)

<div id="foo">
  <table id='bar'>
  </table>
</div>

我假设我的问题来自typof = 'number'。 试图在下面找到我的答案:

2 个答案:

答案 0 :(得分:5)

这是因为b为0,并且在JS中除以0将返回Infinity。另外,Infinity的类型是数字。

var a = 5
var b = 0

console.log('a ', typeof a);
console.log('b ', typeof b);
console.log('(a-b)/(b) ', (a-b)/(b))
console.log('(a - b)/b ', (a - b)/b)
console.log('typeof Infinity ', typeof Infinity)

答案 1 :(得分:1)

可能你除以零。正确?

enter image description here