【发布时间】:2015-02-19 16:11:04
【问题描述】:
我有一些对 AJAX 的调用,我在其中返回一个 JSON 对象作为响应。此 JSON 对象始终具有相同的结构。但是,有时如果 PHP 脚本失败,则 JSON 结构的某些对象未定义甚至不存在。
这也发生在页面中存在的一些“全局”变量中,我在一些 JS 文件中使用,但随后转到另一个页面,我使用这些 JS 文件并且甚至没有写入变量。
所以,我想创建一个函数is_defined(),我可以询问是否定义了变量。函数如下:
function is_defined(ob, can_empty){
if(can_empty === undefined || can_empty == '') can_empty = false
return ob !== undefined && ob !== null && (ob !== '' || can_empty)
}
所以,如果传递的变量是NULL或undefined,或者是空的(不能为空),我返回false。
我的问题出现在甚至没有写入变量时,因为我无法将它传递给函数,因为引发了 Uncaught ReferenceError: obj is not defined error。
所以我的问题是是否有任何方法可以创建一个函数来检查变量是否存在并且是否已定义,因为我想集中所有这些检查进入一个函数,而不是时不时地在我的代码上写obj !== undefined || obj !== null。
我认为使用双非运算符 (!!!obj) 会强制转换为 false,但如果不写入变量,我将面临同样的问题。
编辑: 就像声明一样,这里的问题是能够检查函数内部未声明和未定义的变量,因此我可以将变量传递给函数,而无需在调用它之前检查它是否声明了变量。
感谢大家的时间和回答!
亲切的问候!
【问题讨论】:
标签: javascript function variables undefined