Javascript 能否将未定义的变量设置为函数参数?

Javascript 能否将未定义的变量设置为函数参数?,javascript,jquery,function,variables,parameters,Javascript,Jquery,Function,Variables,Parameters,我正在构建一个函数来匹配变量的类型。它将是typeof==“something”的替代品 我的函数调用如下:是(“一些文本”)[“字符串”]。它返回true,或者为([])[“元素”]。现在它返回false,但我有一个问题 例如,如果我尝试将一个未定义的变量(如“undefVar”)发送到一个函数,我希望它是这样的:is(undefVar)[“undefined”],但我得到一个错误,它表明未定义“undefVar” 我可以使用未定义的变量以某种方式使函数工作吗?这可能吗? p.s:我必须经常使

我正在构建一个函数来匹配变量的类型。它将是
typeof==“something”
的替代品

我的函数调用如下:
是(“一些文本”)[“字符串”]
。它返回true,或者
为([])[“元素”]
。现在它返回false,但我有一个问题

例如,如果我尝试将一个未定义的变量(如“undefVar”)发送到一个函数,我希望它是这样的:
is(undefVar)[“undefined”]
,但我得到一个错误,它表明未定义“undefVar”

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


p.s:我必须经常使用这个函数,所以(对我来说)使用这样的函数会更好:
is(var)[type]
而不是
typeof var===type

typeof
对于不存在的变量是特殊的。您不能用函数来模拟它。

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

typeof
是一个内置操作符,不受“公共”函数规则的约束,这就是为什么它可以做自定义函数无法做的事情


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

更好的解决方案是在声明变量之前不允许使用格式错误的代码。如果您不小心这样做了,请利用收到的错误消息,修复损坏的代码。错误消息会帮助您。他们不应该被压制。