Javascript 自動數據類型轉換機制

Javascript 自動數據類型轉換機制  


2010-10-16 23:15:55|  分類: 前端開發 |  標籤:數據類型轉換機制  |字號 訂閱

在javascript 裏面,當一種類型的值用於需要某種其他類型的值的環境中,那麼javascript將自動嘗試把值轉換爲所需類型,而這就是javascript的自動類型轉換機制。

下標簡單的描述了所有數據類型轉換的過程:這裏所要轉換成的類型是 字符串,數字,布爾,對象:見下表。。。。。。

-------------------------------------------------------------------------------------------------------

在這裏主要說說對象這種類型到基本數據類型的轉化:

1.轉換成布爾值

無論在什麼情況下,一個非空對象在布爾環境中的時候,它都是被轉換爲true。這對於任何對象,數字倘或函數都是適用的。

2.轉換成數字

在對象轉換爲數字時,其有幾個步驟要做的。首先調用通過調用對象的valueOf方法來轉換爲數字的對象。由於大多對象默認的valueOf()方法什麼都沒有做,所以調用了這個方法後,其返回的都是對象本身,所以接下來的一步就是調用toString()方法,在返回對象的字符串後,就嘗試把結果轉換爲一個數字。

這對數組產生了一個有趣的結果。數組的toString()方法吧數組元素轉換爲字符串,然後把各個字符連接起來,形成結果。如果沒有元素,那麼就會轉換爲0。如果只有一個元素,而且是一個數字,那麼轉換結果就是這個數字。如果包含多個元素,如果其中一個元素不是數字,都會返還NaN.

和數據類型緊密相關的是運算符產生的結果:

對於一個對象和一個運算符使用的情況,它應該自動轉換爲數字還是字符串,這仍然不是很明確。但是我們遵循轉換的步驟的話,就能夠推敲的出其結果了。

 

值所使用的環境

字符串

數字

布爾

對象

未定義值

‘undefined’

NaN

False

Error

null

‘null’

0

False

Error

非空字符串

不變

字符串的數字

值或NaN

True

String對象

空字符串

不變

0

False

String對象

0

‘0’

不變

False

Number 對象

NaN

‘NaN’

不變

False

Number 對象

無窮

‘infinity’

不變

True

Number對象

負無窮

‘-infinity’

不變

True

Number 對象

True

‘true’

1

不變

Boolean對象

False

‘false’

0

不變

Boolean對象

對象

to String()

valueOf() , 

toString(),

或者NaN

True

不變

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