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

imm*_*rza 3 javascript angularjs

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

isNaN($scope.variable) 即使返回true也是如此 $scope.variable == undefined.

form validity如果范围变量实际包含NaN但不是,则我想设置true undefined.

dfs*_*fsq 5

那么问题是isNaN将参数转换为Number类型,如果它不是一个数字,那么你ToNumber(undefined)确实NaN得到了这种行为.

因此,您可以在ES2015中引入的Number.isNaN()来修复此混淆或添加额外检查值是否为Number类型,因此基本上填充此Number.isNaN:

$scope.variable == undefined.
// ...
typeof $scope.variable == 'number' && isNaN($scope.variable); // => false
Run Code Online (Sandbox Code Playgroud)