当我尝试遍历项目时,从LocalStorage获取项目会出现错误

时间:2018-08-14 14:11:33

标签: javascript local-storage

我正在做一个小项目,尝试从LocalStorage加载一些东西并将其附加到我的html页面。

是这样的:

.fc-day-grid-event .fc-content .fc-title{

    white-space: normal;

}

我已经设置好了,以便在我的身体标签中调用此功能

function fetchList() {
    var list = JSON.parse(localStorage.getItem('list'));
    var listList = document.getElementById('listList');

    for (var i = 0; i < list.length; i++) {
    .....stuff
    }

我目前在本地存储中什么都没有保存,这在FOR循环语句中给我一个错误,尤其是.length。我知道那里什么都没有,但不是会跳到循环结束吗?

相反,它给sme这个错误:

  

未捕获的TypeError:无法读取null的属性“ Length”

有没有理由不起作用?我在做什么错了?

2 个答案:

答案 0 :(得分:2)

如果还没有存储空间,则JSON.parse()将返回null。 因此,var list也将是null

并且null没有length属性,可以解释您的错误,因为基于长度的for循环需要该长度为数字。

首先尝试检测JSON字符串的存在:

var storedJSON = localStorage.getItem('list');
if ( storedJSON ) {
  var list = JSON.parse( storedJSON  );
  // continue code
}

答案 1 :(得分:0)

我认为您必须先检查是否为空

if (variable == null){
    // your code here.
}