如何检查我的范围变量是否实际包含NaN?
即使isNaN($scope.variable)
, $scope.variable == undefined.
也会返回true
如果范围变量实际包含form validity
但不包含NaN
,我想设置undefined
为真。
答案 0 :(得分:5)
问题是isNaN将参数转换为Number类型,如果它不是一个数字,并且ToNumber(undefined)
确实是NaN
就会出现这种行为。
因此,你可以在ES2015中引入Number.isNaN()来修复这种混淆,或者添加额外检查值是否为数字类型,所以基本上填充了这个Number.isNaN
:
$scope.variable == undefined.
// ...
typeof $scope.variable == 'number' && isNaN($scope.variable); // => false