jquery if检查长对象

jquery if check long object

本文关键字:对象 检查 if jquery      更新时间:2023-09-26

我知道dojo有这个特性,但jquery或任何其他库呢?

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

假设对象嵌套的大小是任意的,我正在寻找一个sugar函数,该函数将检查我要查找的对象是否已定义,并且在此过程中不会导致服务器崩溃。

如果您想深入研究coffee脚本,它在?运算符中有一个很好的功能。

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!');
}

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

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