[知了堂學習筆記]_JavaScript之number類型

請關注“知了堂學習社區”,地址:http://www.zhiliaotang.com/portal.php

number類型
a.表示整數或者浮點數,字面量格式有三種:
1.十進制:

var s = 70; //整數

2.八進制:

var s = 070; //八進制的56
var s = 079; //無效的八進制,解析爲79

3.十六進制:

var s = 0xA; //十六進制的10

b.計算的值超出JavaScript的數值範圍:正數爲inflnity,負數爲-inflnity

如果某次計算返回了正或負的Infinity值,那麼該值將無法繼續參與下一次的計算,因爲Infinity不是能夠參與計算的數值。要想確定一個數值是不是有窮的(換句話說,是不是位於最小和最大的數值之間),可以使用isFinite()函數。這個函數在參數位於最小與最大數值之間時會返回true,如下面的例子所示:

var result = Number.MIN_VALUE+Number.MIN_VALUE;
console.log(isFinite(result));//結果爲false

c.特殊的數值NaN:

在ECMAScript中,任何非數值除以0會返回NaN,因此不會影響其他代碼的執行。

NaN本身有兩個非同尋常的特點。首先,任何涉及NaN的操作(例如NaN/10)都會返回NaN,這個特點在多部計算中有可能導致問題。其次,NaN與任何值都不相等,包括NaN本身。例如,下面的代碼會返回false:

alert(NaN == NaN);

針對NaN的這兩個特點,ECMAScript定義了isNaN()函數。這個函數接受一個參數,該參數可以是任何類型,而函數會幫我們確定這個參數是否“不是數值”。isNaN()在接收到一個值之後,會嘗試將這個值轉換爲數值。某些不是數值的值會直接轉換爲數值,例如串“10”或“Boolean”值。而任何不能轉換爲數值的值都會導致這個函數返回true。請看下面的例子:
這裏寫圖片描述
這裏寫圖片描述
d.三個將非數值轉換爲數值的函數:Number()、parseInt()和parseFloat()

1.number():可以用於任何數據類型。轉換規則:
如果是Boolean值,true和false將分別被轉換成1和0.
如果是數字值,只是簡單的傳入和返回。
如果是null值,返回0。
如果是undefined,返回NaN。
如果是字符串,遵循下列規則:
a.如果字符串中只包含數字(包括前面帶正號或負號的情況),則將其轉換爲十進制數值,即“1”會變成1,“123”會變成123,而“011”會變成11(注意:前導的零被忽略了)
b.如果字符串中包含有效的浮點格式,如“1.1”,則將其轉換爲對應的浮點數值(同樣,也會忽略前導零);
c.如果字符串中包含有效的十六進制格式,例如:“0xf”,則將其轉換爲相同大小的十進制整數數值;
d.如果字符串是空的(不包含任何字符),則將其轉換爲0;
e.如果字符串中包含除上述格式之外的字符,則將其轉換爲NaN。
如果是對象,則調用對象的valueOf()方法,然後依照前面的規則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,然後再次依照前面的規則轉換返回的字符串值。
這裏寫圖片描述
這裏寫圖片描述
2.parseInt():專門用於把字符串轉換成數值。
在轉換字符串時,更多的是看其是否符合數值模式。它會忽略字符串前面的空格,直至找到第一個非空格字符。如果第一個字符不是數字字符或者負號,parseInt()就會返回NaN;也就是說,用parseInt()轉換空字符串會返回NaN(Number()對空字符串返回0)。如果第一個字符是數字字符,parseInt()會繼續解析第二個字符,直到解析完所有後續字符或者遇到了一個非數字字符。例如,”123blue”會被轉換爲123,因爲”blue”會被完全忽略。類似地,”22.5”會被轉換爲22,因爲小數點並不是有效的數字字符。
這裏寫圖片描述
這裏寫圖片描述
3.parseFloat():專門用於把字符串轉換成數值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章