我有以下代码:
if (typeof $scope.grid.data == 'undefined') {
$scope.grid.data = [];
}
$scope.grid.data.push(result);
我对未定义的检查进行了检查,但我仍然从推送中收到错误消息:
TypeError: Cannot call method 'push' of null
非常感谢任何建议
答案 0 :(得分:3)
我一直都很简单:
if (!$scope.grid.data) {
$scope.grid.data = [];
}
这应该在两种情况下都能捕获它(null和undefined)。
答案 1 :(得分:2)
如错误消息所示,相关对象为null
,而非undefined
。这两个是不同的值,您检查的方式只会检查未定义。检查对象是undefined
还是 null
的最佳方法是利用null
和undefined
之间隐式转换的事实,并做:
if ($scope.grid.data == null) {