我有一个非常简单的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;
}
}
答案 0 :(得分:2)
您的问题不在于您的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 {..}
答案 1 :(得分:1)
检查if ($scope.hoursAgo === undefined || $scope.hoursAgo == NaN)
像这样写
if ($scope.hoursAgo === 'undefined' || isNaN($scope.hoursAgo)) {