如何检查我的范围变量是否实际包含NaN?

时间:2015-09-20 10:36:12

标签: javascript angularjs

如何检查我的范围变量是否实际包含NaN?

即使isNaN($scope.variable)

$scope.variable == undefined.也会返回true

如果范围变量实际包含form validity但不包含NaN,我想设置undefined为真。

1 个答案:

答案 0 :(得分:5)

问题是isNaN将参数转换为Number类型,如果它不是一个数字,并且ToNumber(undefined)确实是NaN就会出现这种行为。

因此,你可以在ES2015中引入Number.isNaN()来修复这种混淆,或者添加额外检查值是否为数字类型,所以基本上填充了这个Number.isNaN

$scope.variable == undefined.
// ...
typeof $scope.variable == 'number' && isNaN($scope.variable); // => false