Edit in JSFiddle

function MainCtrl($scope){

    $scope.arr = [];
    $scope.count = 0;
    $scope.count2 = 0;

    $scope.add = function(){
        $scope.arr.push("test");
    }
    
    // This would not work, checks by reference
    $scope.$watch("arr", function(){
        $scope.count++;
    }, false);
    
    // This would work, check by value
    $scope.$watch("arr", function(){
        $scope.count2++;
    }, true);
}

angular.module('app', []).run(function () {});
<div ng-app="app">

<div ng-controller="MainCtrl">

<div ng-repeat="item in arr">{{item}}</div>
    
    Simple Watch:
    <div>{{count}}</div>
    
    Equality check Watch:    
    <div>{{count2}}</div>

    <a ng-click="add()">add</a>

</div>

</div>