jquery如果检查长对象

时间:2011-07-01 03:28:15

标签: javascript jquery node.js

我知道dojo有这个功能,但jquery或任何其他库怎么样?

$.ifObject(foo.bar.baz.qux[0])

if (foo && foo.bar && foo.bar.baz && foo.bar.baz.qux[0])

假设对象嵌套的任意大小,我正在寻找一个糖函数,它将检查我正在查找的对象是否已定义,并且不会使服务器崩溃。

2 个答案:

答案 0 :(得分:1)

最简单的方法是将变量引用括在try-catch块中:

try {
  var val = foo.bar.baz.qux[0];
  // succeeded: use val
} catch (ex) {
  // failed: do something else
}

答案 1 :(得分:1)

如果你想深入了解咖啡脚本,它在?运算符中有一个很棒的功能。

if foo?.bar?.baz?.qux?[0]
  alert 'yay!'

编译到这个令人讨厌但非常有效的javascript

var _ref, _ref2, _ref3;
if (typeof foo !== "undefined" && foo !== null ? (_ref = foo.bar) != null ? (_ref2 = _ref.baz) != null ? (_ref3 = _ref2.qux) != null ? _ref3[0] : void 0 : void 0 : void 0 : void 0) {
  alert('yay!');
}