JavaScript中的无穷大
溢出:overflow,数字结果超过JS表示的数字上限,结果为一个特殊的无穷大Infinity或负无穷大-Infinity.
下溢:underflow是当前结果无限接近于0比JS能表示的最小值还要小,将会返回0,负数下溢就是-0,很少用。
被零除:无意义返回无穷大Infinity或负无穷大-Infinity,0/0返回NaN,表示不是一个数字。
关于Infinity和NaN的例子:
代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>3.1.3 JS中的Infinity</title>
</head>
<body>
<h1>JS中Math的无穷大</h1>
<script>
document.write("Infinity,结果:"+Infinity+"<br>");
document.write("-Infinity,结果:"+-Infinity+"<br>");
document.write("Number.POSITIVE_INFINITY,结果:"+Number.POSITIVE_INFINITY+"<br>");
document.write("Number.NEGATIVE_INFINITY,结果:"+Number.NEGATIVE_INFINITY+"<br>");
document.write("1/0,结果:"+1/0+"<br>");
document.write("Number.MAX_VALUE+1,结果:"+(Number.MAX_VALUE+1)+"<br>");//显示为最大值
document.write("Number.MIN_VALUE/2,结果:"+(Number.MIN_VALUE/2)+"<br>");
document.write("-Number.MIN_VALUE/2,结果:"+(-Number.MIN_VALUE/2)+"<br>");
document.write("NaN,结果:"+NaN+"<br>");
document.write("Number.NaN,结果:"+ Number.NaN+"<br>");
document.write("0/0,结果:"+0/0+"<br>");
document.write("-1/Infinity,结果:"+-1/Infinity+"<br>");
document.write("-0,结果:"+-0+"<br>");
</script>
</body>
</html>
页面效果:
非数字值特殊,它和任何值都不相等,包括自身,无法通过x==NaN来判断,应当用x!=x来判断,当且仅当x为NaN的时候,表达式结果才为true,函数isNaN()的作用与此类似,isFinite()在参数不是NaN,Infinity的时候返回true.