u013398355
linux5620207
2016-06-26 03:20

js webStorage相关问题?

如下是整个代码,可以运行。我的问题是:在函数cookieToList中,如果把localStorage.getItem("cart") && (a = eval(localStorage.getItem("cart")));这一行注释,而使用下边的a = eval(localStorage.getItem("cart"));就会报错。
经过控制台输出查看,上边的语句得到的a为[],而下边的语句得到的a为null,为什么会不同呢。localStorage.getItem("cart")这个语句按说没起什么作用,又没要对变量赋值,都是执行的 && 后边的语句。

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
    var good_list = cookieToList();

    $('button').on('click',addCart);

    function addCart() {
        good_list.push({
            gid: 1,
            buyTimes: 1
        });
        localStorage.setItem("cart", JSON.stringify(good_list));
        cookieToList();
    }

    function cookieToList() {
        var a = [];

        localStorage.getItem("cart") && (a = eval(localStorage.getItem("cart")));//a == []
        //a = eval(localStorage.getItem("cart"));//a == null

        return a;
    }
});
</script>
</head>
<body>
<button type="button">click</button>
</body>
</html>
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换