js變量類型

js有六種原始類型:undefined、null、string、number、boolean、object(Array和Function都是特殊的Object),它們之間能夠相互轉換javascript

Number類型

整數類型能夠用四種進製表示,最多見的是10進制java

  • 10進制
  • 16進制 以0x開頭
  • 8進制 以0開頭,若是後面包含0-7之外的數字,視爲是10進制
  • 2進制 以0b開頭,若是後面包含0-1之外的數字,會報錯

浮點數,浮點數的保存空間是整數的兩倍,因此對於小數點後爲空,或者小數點後爲0的浮點數,會直接轉換爲整數保存。es5

1.0
1.

若是整數位爲空,能夠省略,例如code

.123

可是這種方法不推薦,能夠採用科學計數法來表示浮點數對象

1.123e10
.123E10

javascript數字一樣採用IEEE754數值的浮點計算,會出現舍入偏差ip

0.1 + 0.2 === 0.3 ? false

有幾個特殊的值字符串

Number.MAX_VALUE
Number.MIN_VALUE
Number.NEGATIVE_INFINITY  
Number.POSITIVE_INFINITY
-Infinity
Infinity
NaN

提供了全局的isNaN方法來判斷一個數是不是NaN,注意isNaN會嘗試將這個變量轉換成數字,若是不能轉換成數字,直接返回爲true,能轉換成數字,不是NaN,返回falsestring

類型轉換

其它類型轉換成boolean

undefined/null => false
"" => false
0/+0/-0/NaN => false
其他都轉換成true

其它類型轉換成數字

其它類型轉換爲數字有三個方法,Number()、parseInt()、parseFloat(),在變量前面加上+號等於調用Number方法it

Number方法

null => 0
undefined => NaN
false => 0
true => 1

string:io

1.只包含'整數'
2.只包含'浮點數'
3.只包含'十六進制數'
4.只包含'二進制數'
5.不識別'八進制',會忽略前導的0
轉換成數字
6.其他狀況都爲NaN
'23' => 23
'1.23' => 1.23
'1.' => 1
'1e2' => 100
'0xa' => 10
'0x10' => 2

object:

先調用valueOf,若是valueOf返回值爲原始值,則轉換成數字,若是爲對象,返回NaN,不會再對返回的對象進行valueOf和toString的解析,若是沒有valueOf,則調用toString

parseInt方法

儘可能解析,對於八進制,es3引擎會解析爲8進制,es5引擎會忽略開頭的0,爲了減小這種歧義,能夠爲parseInt加上第二個參數,用來指定進制

注意:parseInt("")返回NaN

parseFloat

忽略第二個小數點

其它類型轉換成string

除了null和undefined都有toString方法,若是不清楚是不是null和undefined,能夠使用String()方法

toString方法

數字調用toString方法時能夠加上參數,用來肯定是轉換成什麼進制的字符串

String方法

若是該變量有toString方法,調用toString方法,包括object若是既有toString方法和valueOf方法,先調用toString方法。若是null調用返回'null'若是undefined調用返回'undefined'

相關文章
相關標籤/搜索