Javascript 尝试推送到阵列时获取错误消息

Javascript 尝试推送到阵列时获取错误消息,javascript,Javascript,我有以下代码: if (typeof $scope.grid.data == 'undefined') { $scope.grid.data = []; } $scope.grid.data.push(result); 我检查了undefined,但仍然从推送中收到一条错误消息,上面说: TypeError: Cannot call method 'push' of null 如果您有任何建议,我们将不胜感激。如错误消息所示,所涉及的对象为空,而不是未定义的对象。

我有以下代码:

  if (typeof $scope.grid.data == 'undefined') {
        $scope.grid.data = [];
  }
  $scope.grid.data.push(result);
我检查了undefined,但仍然从推送中收到一条错误消息,上面说:

TypeError: Cannot call method 'push' of null

如果您有任何建议,我们将不胜感激。

如错误消息所示,所涉及的对象为空,而不是未定义的对象。这两个值是不同的,您检查的方式将只检查未定义的值。检查对象是否为未定义对象的最佳方法是利用null和未定义对象之间隐式转换的事实,并执行以下操作:

if ($scope.grid.data == null) {

如错误消息所示,所讨论的对象是null,而不是未定义的。这两个值是不同的,您检查的方式将只检查未定义的值。检查对象是否为未定义对象的最佳方法是利用null和未定义对象之间隐式转换的事实,并执行以下操作:

if ($scope.grid.data == null) {

我一直对一个简单的问题很满意:

if (!$scope.grid.data) {
    $scope.grid.data = [];
}
在null和undefined两种情况下都应该捕获它


我一直对一个简单的问题很满意:

if (!$scope.grid.data) {
    $scope.grid.data = [];
}
在null和undefined两种情况下都应该捕获它


两个示例分别在和中显示了这一点