javascript - 语法错误: JSON Parse error: Unexpected identifier "function"

标签 javascript json session-storage

第一次发帖。我一直在寻找答案,但似乎可以找到任何可行的解决方案。我正在调试一个用 ES6 构建的购物车。它似乎在 Chrome 上完美运行,但在 Safari 和 Firefox 上我遇到了错误。

Safari 中的错误:

SyntaxError: JSON Parse error: Unexpected identifier "function"

火狐浏览器中的错误:

SyntaxError: JSON.parse: unexpected keyword at line 1 column 1 of the JSON data[Learn More]

我的代码:

export default class productUtil{
    constructor (){
    }

    addToCart (sku, price){
        let product={price, quantity:1};
        if (sessionStorage.getItem(sku) == undefined){
            sessionStorage.setItem(sku, JSON.stringify(product));
        }
        else {
            let oldValue=JSON.parse(sessionStorage.getItem(sku, product)); 
            let newValue = oldValue.quantity + 1;
            product.quantity = newValue;
            sessionStorage.setItem(sku,JSON.stringify(product));
        }
        this.cartBuilder(sku, product);
    }


    cartBuilder(sku, product){
        document.getElementById('listItems').innerHTML="";
        if (sessionStorage){

            for(let key in sessionStorage){
                let cartItem = document.createElement("div");
                cartItem.setAttribute("id","itemRows");
                product = JSON.parse(sessionStorage[key]);
                let totalPrice = product.price*product.quantity;

                cartItem.innerHTML=(
                        '<div>'+key+'</div>'+
                        '<input class="cart_input_size" id="'+key+'" type="number" value="'+product.quantity+'">'+
                        '<div>'+'$'+product.price+'</div>');
                document.getElementById('listItems').appendChild(cartItem);
            }   
        }
    }
}

谢谢,感谢任何帮助!

最佳答案

您也在迭代原型(prototype)。使用Object#hasOwnProperty()检查它是否是原型(prototype)或可枚举属性

尝试

for(let key in sessionStorage){
  if(sessionStorage.hasOwnProperty(key)){
    // process storage item
  }
}

关于javascript - 语法错误: JSON Parse error: Unexpected identifier "function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46760612/

相关文章:

c# - Newtonsoft.Json.JsonSerializationException 未由用户代码处理

android - android 中的 JSON 解析(try{} 中的问题)

javascript - 如何使用 session 存储在页面刷新后初始化并保留更新后的js变量的值?

Javascript 日期意外自动更新

javascript - iFrame 关闭时 session 存储不会重置

javascript - 使用 JavaScript 函数中的数据更改 SVG 路径颜色

javascript - 如何进行一个在检查元素外观之前等待 5 秒的测试(React 测试库)

javascript - 如何在单击时删除焦点菜单上的焦点

javascript - 使用调用方法而不是在参数中传递对象有什么好处

php - 无法从 PHP 文件中解码 JSON