我知道能夠使用typeof
類型,不過,我想知道如果爲了弄清楚,如果anyVariable
是使用比較反對任何其他變量的字符串,以確定在JavaScript
String(anyVariable) === anyVariable
字符串:
- 是一種普遍有效的方法嗎?
- 在瀏覽器中始終如一地工作?
- 有沒有什麼隱患?
我知道能夠使用typeof
類型,不過,我想知道如果爲了弄清楚,如果anyVariable
是使用比較反對任何其他變量的字符串,以確定在JavaScript
String(anyVariable) === anyVariable
字符串:
我可以認爲沒有理由使用你的方法與簡單得多的typeof
。你的表現可能會變差(Matti的jsperf減慢15倍)並且更加複雜。
您的方法將需要多個內存操作(創建字符串對象,然後爲其分配字符串值),然後需要運行垃圾回收器,而typeof
只是查看內部javascript對象的屬性。
如有疑問,請選擇解決問題的最簡單方法。
如果有疑問,請選擇語言定義中指定的用於解決問題的方法。
如有疑問,請選擇需要較少內存操作的方法。
我會說不這樣做,並使用typeof,因爲「字符串」用於操縱存儲的文本,而不是比較類型。最好將這些功能用於他們的預期用途,以確保最穩定,並從中獲得最佳實踐。另外,目的是用方法擴展類型。所以你基本上會導致更多的工作和處理,而不僅僅是一種類型比較。希望能夠回答它,儘管這是一個只有「意見」作爲答案的問題。你不會創建一個新的對象,將它分配給你當前的對象,來檢查它是否是一種對象?不,你只會使用「typeof」。
爲什麼在世界上你會這樣做?正如你現在所看到的,如果你想知道它是一個字符串,就使用'typeof'。你想要做的只是更復雜,並會表現得更糟。 – jfriend00
在'typeof'(我很少使用)之前,我想出了這個想法。我想知道第一個想法是否是一個有效的方法,並決定問。 – SquareCat
所以,現在你已經知道'typeof'爲什麼這樣做效率低於語言中指定的方式呢?除非你有理由變得更加複雜,否則越簡單越好。 – jfriend00