首次访问时Cookie Cookie错误

时间:2016-08-22 09:46:01

标签: javascript jquery cookies

首次访问我的网站时,没有设置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);  

我的小提琴是http://jsfiddle.net/Lvrr0nzc/21/show

我确实尝试过||代码中的0。

1 个答案:

答案 0 :(得分:2)

  

如果没有cookie,则返回0而不是

使用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 || 00,因为||的结果是第一个操作数的值,如果是值是真实的,否则是第二个操作数的值。

或者您可以在此过程中使用||

$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");

如果Cookie不存在,则依赖$cookies.get()假(nullundefined"")的值, 可能是,因此value || "0"可以获取Cookie中的值或字符串"0"

但我可能会使用第一个。