为什么在JS中Number.MAX_VALUE + 1不返回Infinity?

JavaScript023

为什么在JS中Number.MAX_VALUE + 1不返回Infinity?,第1张

Number.MAX_VALUE代表最大的可表示的数字,它是一个静态属性。当进行加法运算时,如果两个数相加超过了Number.MAX_VALUE,那么结果会返回Infinity。但是,在这个例子中,我们直接访问了Number.MAX_VALUE,并没有进行任何运算,所以它只会返回Number.MAX_VALUE的值,而不会返回Infinity。

当一个表达式的运算结果大于Number.MAX_VALUE时,将被赋予值Number.POSITIVE_INFINITY

var a1 = Number.MAX_VALUE + 100

var a2 = Number.MAX_VALUE * 2

alert(isFinite(a1))//输出true

alert(isFinite(a2))//输出false

可以用for循环比较大小,然后取出最大值。如:

window.onload = function(){

    var a = [3,0,18,267,99,657,1,6]

    var b = a[1]

    for(i=0 i<a.lengthi++){

        if(b<a[i]){

            b = a[i]

        }

    }

    alert(b)

}