'if(newcontact.id == null)'是什么意思?

时间:2014-05-29 14:19:36

标签: angularjs null

我是编程新手,正在尝试学习angularJS来构建一个Web应用程序。我遇到了一个示例联系人管理器应用程序,我很难理解其中的一部分,即检查联系人是否存在的部分:

 if($scope.newcontact.id == null)

好的,我知道这是否是一个新联系人,但我不明白逻辑上发生了什么。我读了null并理解它意味着被评估的东西已知存在,但没有价值。

这是否意味着'newcontact.id存在但没有值'?

以下是该应用的javascript部分:

var uid = 1;

function ContactController($scope) {

$scope.contacts = [
    { id:0, 'name': 'Viral', 
      'email':'hello@gmail.com', 
      'phone': '123-2343-44'
    }
];

$scope.saveContact = function() {

    if($scope.newcontact.id == null) {
    //if this is new contact, add it in contacts array
    $scope.newcontact.id = uid++;
    $scope.contacts.push($scope.newcontact);
    } else {
    //for existing contact, find this contact using id
    //and update it.
    for(i in $scope.contacts) {
        if($scope.contacts[i].id == $scope.newcontact.id) {
        $scope.contacts[i] = $scope.newcontact;
        }
    }                
    }

    //clear the add contact form
    $scope.newcontact = {};
}


$scope.delete = function(id) {

    //search contact with given id and delete it
    for(i in $scope.contacts) {
        if($scope.contacts[i].id == id) {
            $scope.contacts.splice(i,1);
            $scope.newcontact = {};
        }
    }

}


$scope.edit = function(id) {
//search contact with given id and update it
    for(i in $scope.contacts) {
        if($scope.contacts[i].id == id) {
            //we use angular.copy() method to create 
            //copy of original object
            $scope.newcontact = angular.copy($scope.contacts[i]);
        }
    }
}
}

1 个答案:

答案 0 :(得分:2)

if ($scope.newcontact.id == null)

如果$scope存在并且$scope有一个名为newcontact的属性,该属性也存在且newcontact有一个名为idid的属性没有分配值。

通过该语句,作者假设(或先前已检查过)$scope存在且不为空并且$scope.newcontact存在且不为空。显式检查是idnewcontact上尚未分配值的属性。