未定义不是对象 - Angular $rootScope.user.userMessage

Undefined is not an object - Angular $rootScope.user.userMessage

我一直收到

的错误

Error: undefined is not an object (evaluating '$rootScope.user.userMessage')

使用此代码:

if (typeof($rootScope.user.userMessage) === null) {

但如果我在 $rootScope.user.userMessage 中确实有一些东西,它就不会崩溃。我如何执行检查以查看 this 是否为 undefined 或 null 以便它不会损坏?

我尝试过的其他事情包括:

if (typeof($rootScope.user.userMessage) === undefined) {
if ($rootScope.user.userMessage === undefined) {
if($rootScope.user && $rootScope.user.userMessage){
    ...
}

Typeof 不是函数。你必须这样使用它

if (typeof $rootScope.user.userMessage === "undefined") {

您可以使表达式 null 安全

if ($rootScope !=null && $rootScope.user!=null &&  $rootScope.user.userMessage != null) {
  ...
}

如果您只检查未定义的,您可以使用

angular.isDefined($rootScope.user.userMessage);

angular.isUndefined($rootScope.user.userMessage);

但是节拍的做法是使用

if($rootScope.user && $rootScope.user.userMessage){
    ...
}

它只会在一种情况下同时检查 null、undefined 或 empty。