使用IEEE754格式來表示整數和浮點數值。
浮點數值:該數值中必須包含一個小數點,并且小數點后面必須至少有一位數字。浮點數值需要內存空間是保存整數值的兩倍。最高精度是17為小數,但在進行算術運算時其精度遠遠不如整數。

各種數值類型:十進制,八進制(在嚴格模式下無效),十六進制
八進制字面量的第一位必須是0,然后是八進制數字序列(0~7)。如果字面值中的數值超出了范圍,那么前導0將被忽略,后面的數值將被當做十進制數來解析
070//56079//79
十六進制字面值的前兩位必須是0x,后跟十六進制數字(0~9及A~F)。其中字母A~F可大小也可小寫
0xA//10
在進行算術計算時,所有以八進制和十六進制表示的數值最終都將被轉換為十進制數值
數值范圍:

如果某次計算中的結果中得到了一個超出javascript數值范圍的值,那么這個值將被轉換為特殊的Infinity值,該值無法參與下一次的計算,因為Infinity是無法參與計算的數值。如果這個數是正數則被轉換為Infinity(正無窮),如果這個數是負數則被轉換為-Infinity(負無窮)。
-10/0//-Infinity10/0//Infinity

isInfinite()判斷一個數是否有窮。
var result = Number.MAX_VALUE + Number.MAX_VALUEconsole.log(isFinity(result));//false
NaN
console.log(NaN === NaN)//false0/0//NaN
isNaN:接收一個參數,會嘗試將這個值轉換為數值,返回布爾值
console.log(isNaN('10'));//falseconsole.log(isNaN('bb'));//true數值轉換
有3個函數可以把非數值轉換為數值
Number():使用于任何數值類型。
1.null
Number(null)//0undefinedNumber(undefined)//NaN
2.布爾值
Number(true)//1Number(false)//0
3.字符串
Number('bb')//NaN,非數值字符Number('123')//123,數值字符Number('')//0,空串4.對象
如果是對象,則調用對象的valueOf()方法,然后依照上述的規則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,然后再次依照前面的規則轉換返回的字符串值。
5.parseInt()/parseFloat():用于將字符串轉換為數值。
parseInt():從第一個字符串開始解析,直到解析到非數字字符,可接受兩個參數,第二個參數代表不同的進制,默認轉換為十進制數。
parseInt('')//NaN,空串parseInt(22.4)//22parseInt('12bu')//12parseInt('10',2)//2parseInt('10',8)//8parseFloat():從第一個字符串開始解析,第一個小數點有效,忽略前導0,只能轉換為十進制數值。parseFloat('')//NaNparseFloat('090')//90parseFloat('2.3.4')//2.3總結
文字:
Rounding-error
var x = .3 - .2 var y = .2 - .1 x == y x == .1 // => false .3 -.2 不等于 ./ y == .1 // => true .2 - .1 等于 .1
新聞熱點
疑難解答