将日期与NaN和未定义进行比较
Comparing date to NaN and undefined
我有一个非常简单的if语句,但我不使用javascript太多,所以我认为我在某个地方犯了错误。如果你去我的页面,你可以看到值被警告为未定义,但代码块仍然被跳过,即使If参数是== undefined
。这是一个AngularJS应用吗?
网页:http://alainwebdesign.ca/pl2/#/petType
javascript:$scope.setDate = function (dateSelected) {
alert(dateSelected);
var now = new Date();
$scope.latest = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes());
$scope.hoursAgo = Math.round((($scope.latest - dateSelected) / 3600000) * 100) / 100;
if ($scope.hoursAgo === undefined || $scope.hoursAgo == NaN) {
alert("Please choose a date/time");
}
else {
alert('You lost your pet ' + $scope.hoursAgo + ' hour(s) ago');
$scope.checkDateSet = true;
}
}
你的问题不在于你的if语句。Javascript中的NaN
有些特殊。
:NaN === NaN // false
您可以在这里阅读更多内容:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN
将支票更改为:
if ($scope.hoursAgo === undefined || isNaN($scope.hoursAgo)) {
...
} else {..}
检查if ($scope.hoursAgo === undefined || $scope.hoursAgo == NaN)
像这样写
if ($scope.hoursAgo === 'undefined' || isNaN($scope.hoursAgo)) {
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 未定义===未定义比较什么
- 如何在不获得引用错误的情况下将不存在的JavaScript对象与未定义的对象进行比较
- 无法循环访问比较文本值的数组,使用量角器未定义的结果
- 与“未定义”进行比较是否仍会进行全局范围查找
- 非常奇怪的行为,比较未定义和错误
- 带有护照的节点:比较密码抛出错误未定义不是一个函数,当它返回返回完成(null,用户);
- 比较数组函数返回未定义
- 与-1或未定义进行比较不起作用,无论是使用==还是===
- null和未定义的不一致比较
- 如果comparison(if语句)比较未定义的值,则返回true
- 比较未定义/null/NaN与ActionScript中的number
- 量角器,JavaScript 比较:无法读取未定义的属性“forEach”
- TypeError: Cannot read property '0'比较数组时未定义的
- 比较JavaScript中未定义的值
- 将日期与NaN和未定义进行比较
- TypeOf未定义,而不是与未定义进行比较
- 为什么我得到一个未定义的变量?将变量与未定义进行比较时出错
- 使用下划线比较两个未定义值的对象
- 数组越界:与未定义的比较,或长度检查