您可以将未定义的变量设置为函数参数吗?

时间:2012-10-01 13:03:57

标签: javascript jquery function variables parameters

我正在构建一个匹配变量类型的函数。它将是typeof <var> === "something"的替代方案。

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

例如,如果我尝试将一个未定义的变量(如“undefVar”)发送到函数中,我期待这样的事情:is(undefVar)["undefined"],但是我得到一个错误,表示未定义“undefVar”。

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

typeof是一个内置运算符,不受“常用”函数规则的约束,这就是为什么它可以执行自定义函数无法执行的操作。

最后,我强烈反对,即使可能,也可以使用替代语法。