2012-10-01 43 views
3

我正在構建一個函數來匹配變量的類型。這將是typeof <var> === "something"的替代方案。您可以將未定義的變量設置爲函數參數嗎?

我的函數調用看起來是這樣的:is("some text")["string"]。它返回true,或is([])["element"]。現在它返回false,但我有一個問題。例如,如果我嘗試將一個未定義的變量(如「undefVar」)發送給某個函數,我期待如下所示:is(undefVar)["undefined"],但是我收到一條錯誤消息,說「undefVar」未定義。

我可以以某種方式使使用未定義的變量我的功能工作?這可能嗎?

P.S:我要使用此功能很多,所以它似乎(對我來說),這將是更好地使用這樣的事情:is(var)[type],而不是typeof var === type

+2

更好的解決方案是在聲明變量之前,不要通過使用變量來允許格式錯誤的代碼。如果您不小心做到了,請利用您收到的錯誤消息,並修復損壞的代碼。錯誤消息可幫助您。他們不應該被壓制。 –

回答

1

typeof是不存在的變量的特殊。你不能用一個函數來模仿它。

1

不,你不能一味傳給不確定的變量,從調用點你的函數和全局更改的JS引擎的行爲,以適應這一點。

typeof是一個內置的運營商,而不是通過「共同」的功能,規則的約束這就是爲什麼它可以做的事情,自定義函數不能。

最後,我堅決不同意,這將是實際上最好使用即使這是可能的替代語法。

相關問題