2016年1月6日

[筆記] 談談JavaScript的coercion

圖片來源:JavaScript 101

這篇來談談JavaScript中coercion的概念,coercion指的是將資料從一種型態轉換成另一種型態,在某些情況下JavaScript會根據它自己的判斷將資料轉換成另一種型式。

讓我們來看看下面這個例子:


其中1是數字,2則是字串,那麼a到底會得到什麼樣的結果?

答案是..."12"



為什麼呢?

因為JavaScript在執行這段程式的過程中,它會儘可能去的猜測你要表達的意思是什麼?在這裡它其實是把"1"當成了字串去處理,也就是將原本的數值轉換成字串的型式(coercion),所以才會變成12,因為1是字串、2也是字串,然後中間用字串連接子"+"連接起來,最後便成了12,而這個12其實也是個字串。

我們可以用typeof()這個指令來檢驗a這個變數的型態,會發現,的確回傳了a為字串的結果。


這個範例可以給我們什麼啟示呢?

有些時候我們在寫程式的時候,會像下面這樣,中間已經隔了一些程式碼,最後才來進行運算,也許你原本預期是得到"3"的結果,結果竟然回傳了"12",這時候,我們可以想到有可能是JavaScript中的coercion導致的。



→回到此系列文章目錄

資料來源

0 意見:

張貼留言