第一次访问我的网站时,没有设置 cookie,因此我的计算返回 NaN 错误。我该如何解决这个问题(如果没有cookie,则返回0)。
这就是我用来获取cookie的......
$scope.WH1 = parseInt($cookies.get('WH1'));
$scope.WH2 = parseInt($cookies.get('WH2'));
$scope.WH3 = parseInt($cookies.get('WH3'));
$scope.WH4 = parseInt($cookies.get('WH4'));
$scope.WH5 = parseInt($cookies.get('WH5'));
为了设置它,我使用......
$scope.saveInCookie = function() {
$cookies.put('WH1', $scope.WH1);
$cookies.put('WH2', $scope.WH2);
$cookies.put('WH3', $scope.WH3);
$cookies.put('WH4', $scope.WH4);
$cookies.put('WH5', $scope.WH5);
我的 fiddle 是http://jsfiddle.net/Lvrr0nzc/21/show
我确实尝试过||代码中为 0。
最佳答案
If no cookie, return a 0 instead
与 curiously-powerful ||
operator :
$scope.WH1 = parseInt($cookies.get('WH1')) || 0;
$scope.WH2 = parseInt($cookies.get('WH2')) || 0;
$scope.WH3 = parseInt($cookies.get('WH3')) || 0;
$scope.WH4 = parseInt($cookies.get('WH4')) || 0;
$scope.WH5 = parseInt($cookies.get('WH5')) || 0;
这是可行的,因为 NaN
是假的并且 ||
,所以 NaN || 0
是 0
,因为 ||
的结果是其第一个操作数的值(如果该值为真),否则是第二个操作数的值。
或者您可以在此过程的早期使用 ||
:
$scope.WH1 = parseInt($cookies.get('WH1') || "0");
$scope.WH2 = parseInt($cookies.get('WH2') || "0");
$scope.WH3 = parseInt($cookies.get('WH3') || "0");
$scope.WH4 = parseInt($cookies.get('WH4') || "0");
$scope.WH5 = parseInt($cookies.get('WH5') || "0");
这依赖于 $cookies.get()
的值是假的(null
、undefined
、""
) 如果 cookie 不存在,那么它可能存在,所以 value || "0"
从 cookie 获取值或字符串 "0"
。
但我可能会使用第一个。
关于javascript - 首次访问时出现 Cookie NaN 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39076250/