3

我正在构建一个函数来匹配变量类型。它将是typeof <var> === "something".

我的函数调用如下所示:is("some text")["string"]。它返回真,或is([])["element"]。现在它返回 false,但我有一个问题。

例如,如果我尝试将一个未定义的变量(如“undefVar”)发送到一个函数,我期待这样的东西:is(undefVar)["undefined"],但我收到一个错误,指出“undefVar”未定义。

我可以使用未定义的变量以某种方式使我的函数工作吗?这可能吗?

ps:我必须经常使用这个功能,所以(对我来说)使用这样的东西会更好 :is(var)[type]而不是typeof var === type.

4

2 回答 2

1

typeof对不存在的变量是特殊的。你不能用函数来模仿它。

于 2012-10-01T13:06:18.657 回答
1

不,您不能盲目地将未定义的变量从调用站点传递给您的函数,并全局更改 JS 引擎的行为以适应这种情况。

typeof是内置运算符,不受“普通”函数规则的约束,这就是为什么它可以做自定义函数不能做的事情。

最后,我强烈反对使用替代语法实际上更可取,即使这是可能的。

于 2012-10-01T13:06:34.860 回答