将未定义的变量传递给函数时出错
Error when passing undefined variable to function?
我正在尝试创建一个可重用的函数来检查变量是否未定义。奇怪的是,当我将变量传递给函数以执行代码时,它不起作用,但是如果我在函数外部使用相同的逻辑,它就可以工作。有没有办法让这个函数被定义工作?
//THIS WORKS AND RETURN FALSE
alert(typeof sdfsdfsdfsdf !== 'undefined');
//THIS GIVES AN ERROR, WHY?
//Uncaught ReferenceError: sdfsd is not defined
function isDefined(value) {
alert(typeof value !== 'undefined' && value !== null)
}
isDefined(sdfsd);
此处的实时示例(检查控制台中的错误): http://jsfiddle.net/JzJHc/
除非在typeof
测试中,否则不能使用尚未声明的变量
传递到函数中时,将考虑使用该未声明的变量。您会注意到错误出在调用方中,而不是在isDefined
您需要运行检查
if (typeof sdsdsd !== 'undefined')
在将其传递到函数之前。基本上,这意味着您无法编写接受未声明变量的isDefined
函数。您的函数只能用于未定义的属性(可以传递)
但是,我很好奇,您传递不存在的变量的真实情况是什么?你应该声明所有的变量,它们应该已经存在。如果您声明var sdsdsds
它将以 undefined
的值存在,并且您的 isDefined
函数将正常工作。
相关文章:
- 尝试调用AngularJS上的函数时出错
- 得到"未定义不是函数“;使用显示原型图案时出错
- 从函数中的函数返回数组时出错
- 从 java 脚本调用函数时 PHP 中出错
- 使用PHP和Javascript在函数内部传递alphaneumeric值作为参数时出错
- 比较$watch函数内的基元类型时出错
- CakePHP错误:在非对象上调用成员函数get(),使用cakejavascript助手时出错
- 构造函数出错
- javascript函数出错
- AngularJS:没有定义$rootscope的全局函数出错,没有定义$scope
- Java脚本函数不;一个函数出错后无法工作
- OnClick函数出错
- 函数b()出错
- for循环中的JavaScript匿名函数出错
- 使用带有href的attr函数出错
- 从外部文件调用JavaScript函数出错
- 使用本地存储的可排序列表函数出错
- 确定数字中位数的函数出错
- PHP邮件函数发送电子邮件,但AJAX函数出错
- ajax函数出错,尽管它转到了我的webservice