$ viewValue and $ modelValue by default Number.NaNis the JavaScript definition for Not - a - Number.
check out github and you will find that
var NgModelController = ['$scope', '$exceptionHandler', '$attrs',
'$element', '$parse',
'$animate', '$timeout',
function($scope, $exceptionHandler, $attr, $element, $parse,
$animate, $timeout)
{
this.$viewValue = Number.NaN;
this.$modelValue = Number.NaN;
Why is this convenience? Because AngularJS is trying to avoid cases like nulland undefined. View values and model values are related and determined by the "domain". What the $ scope service point is to control the modelValue and viewValue parameters.
, AngularJS , Number.NaN