javascript - 首次访问时出现 Cookie NaN 错误

标签 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);  

我的 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 || 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");

这依赖于 $cookies.get() 的值是假的(nullundefined"") 如果 cookie 不存在,那么它可能存在,所以 value || "0" 从 cookie 获取值或字符串 "0"

但我可能会使用第一个。

关于javascript - 首次访问时出现 Cookie NaN 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39076250/

相关文章:

javascript - 如何对数组中打乱的元素进行编号?

整个页面的Javascript循环滚动

jQuery onClick slideUp 和 addClass 不工作

cookies - 为什么同源策略不足以防止 CSRF 攻击?

mysql - 如何使 Apache 用户跟踪 cookie 为十进制而不是十六进制?

javascript - 火狐扩展 : write cookie names for the current web-page in a local . txt 文件

javascript - 使用 PHP 在 tmux session 中运行命令

javascript - 我可以使用 JavaScript 进行某种实时媒体解码吗?

jquery - 具有不同图像大小的缩略图 Bootstrap

javascript - 在 slider 上动态添加类