在JavaScript中,變量是鬆散類型的,因此數字5
和字符串"5"
可能被多個運算符視爲一個數字。然而,是否有一種通用的方式來查找tunrime中的JavaScripts轉換能力,還是僅僅爲幾種類型的操作符重載,使得鬆散的鍵入成爲可能?是否可以檢查JavaScript中可能的轉換?
例如,給定包含類型名稱type_canditate
可變a
和一個字符串,是否有任何的方式來詢問的JavaScript,如果a
可以轉換爲type_candidate
在feasable方式,相比於硬打字運營商如instanceof
?例如,"5" instanceof Number
評估錯誤,而Math.sin("5")
是完全可行的。對於數字,可以明確地檢查parseFloat(some_number)
的計算結果是否爲NaN
,但這是數字的特例。
那麼,是否有任何命名類型的通用方法,並檢查某些變量是否可以以有用的方式轉換爲給定類型?
沒有明確的用於此目的的設施,但您可以隨時*嘗試*轉換爲任何其他類型的類型以查看您獲得的內容。 – Pointy
另外,'parseFloat()'不是檢查可轉換性的好方法。 Number()構造函數更安全。 – Pointy
'Number'比parseFloat'有什麼好處? – dronus