为什么在chrom的console-> application-> localStorage中显示null

时间:2017-04-11 07:27:10

标签: javascript local-storage

我正在使用远远低于此代码的代码,并且在我的chrome的localStorage区域中,{strong> null 显示在storeArrObj的实际值之前。这是为什么 ? enter image description here

完整代码

<label>First Name: </label><input type="text" id="firstNameSto"><br>
<label>Last Name: </label><input type="text" id="lastNameSto"><br>
<button type="submit" id="fetchDetails">Submit and Display</button>
<div id="displayStorage"></div>

<script>
    document.getElementById('fetchDetails').addEventListener('click',storageFunction);
    function storageFunction(){
        var firstNameSto = document.getElementById('firstNameSto').value;
        var lastNameSto = document.getElementById('lastNameSto').value;
        var storageArr = [];
        var storageObj = {
            firstName: firstNameSto,
            lastName: lastNameSto
        }
        if (localStorage.getItem('storageArrObj') === ""){
            storageArr.push(storageObj);
            var storeObj = JSON.stringify(storageArr);
            localStorage.setItem('storageArrObj', storeObj);
        } else {
            var parseStor = JSON.parse(localStorage.getItem('storageArrObj'));
            storageArr.push(parseStor);
            storageArr.push(storageObj);
            var storeObj = JSON.stringify(storageArr);
            localStorage.setItem('storageArrObj',storeObj);
        }
        console.log(localStorage.getItem('storageArrObj'));

    }
</script>

1 个答案:

答案 0 :(得分:2)

第一次运行此代码时,localStorage['storageArrObj']尚不存在:

  1. if (localStorage.getItem('storageArrObj') === ""){是假的。
  2. JSON.parse(localStorage.getItem('storageArrObj'));返回null
  3. 哪个存储在var parseStor =
  4. parseStor被推送到storageArrstorageArr.push(parseStor);
  5. storageArr,其中null存储在localStorage
  6. 解?

    替换:

    if (localStorage.getItem('storageArrObj') === ""){
    

    使用:

    if (localStorage.getItem('storageArrObj') === null){
    

    或者用:

    var stored = localStorage.getItem('storageArrObj');
    if (stored === null || stored === ""){