圖片來源: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 意見:
張貼留言