开发者问题收集

处理 Javascript 中的空值[重复]

2019-08-25
54

我有一个如下所示的 Javascript 函数:

function refresh(selection, xPath, yPath, xAnnotationSelection, yAnnotationSelection) {
      var coords = selection.node().__coord__;
      ...
}

有时调用该函数时,变量 selection 尚未设置,这会导致抛出以下异常:

Uncaught TypeError: Cannot read property ' coord ' of null

有什么更好的方法可以编写语句,使其首先检查以确保 selection 不为空,然后再尝试调用其上的方法?

伪代码:

var coords = (selection ? ((selection.node ? selection.node().__coord__: null) : null);
2个回答

您可以写 -:

var coords = selection && selection.node && selection.node().__coord__;
Abhisar Tripathi
2019-08-25

我认为你的功能的最佳方式是:

function refresh(selection, xPath, yPath, xAnnotationSelection, yAnnotationSelection) {
  const node = selection && selection.node();
  if (!node) {
    return null;
  }
  var coords = node.__coord__;
  ...
}
Maxim Pyshko
2019-08-25