繁体   English   中英

我不明白这段代码有什么错误

[英]I can't understand what is the error in this code

我不明白为什么Firefox在第31行中给我错误,说elencouser(我在代码顶部声明)为null,请帮我,谢谢

var elencouser = [];
var array;

$(document).ready(function(){

    if (typeof(Storage) !== "undefined") {

        if(sessionStorage.getItem("arrayuser") == "undefined"){
            elencouser[0] = new utente("admin","admin","Danilo","Cerasi");
            array = JSON.stringify(elencouser);
            sessionStorage.setItem("arrayuser",array);
        }

        $("#registrati").click(function(){

            array = sessionStorage.getItem("arrayuser");
            elencouser = $.parseJSON(array);

            var email=$("#exampleInputEmail").val();        //prendo quello che ha scritto l'utente
            var password=$("#exampleInputPassword").val();
            var nome=$("#exampleFirstName").val();
            var cognome=$("#exampleLastName").val();

            elencouser.push( new utente(email,password,nome,cognome) );
            alert("sei appena stato registrato! Ora verrai reindirizzato alla pagina di login..");

            location.href="login.html";
        });

    }else{
        alert("riscontriamo problemi di apertura con il browser che stai utilizzando, aggiornalo oppure prova con uno doverso");    //se il browser non supporta il il session storage glielo dico
    }
});

未定义检查应使用typeof来检查"undefined"

if(typeof sessionStorage.getItem("arrayuser") == "undefined"){

请注意,由于各种原因(通过用户手动编辑或通过遗留代码), arrayuser可能仍包含不同的数据。

因此,我总是假设从本地/会话存储中获取arrayuser时,您可能无法获得有效的数组。

在您的click事件中,我还将检查arrayuser是否有效,以及它是否为数组:

try {
    const arrayuser = sessionStorage.getItem("arrayuser");
    elencouser = JSON.parse(arrayuser);

    if(!Array.isArray(elencouser)) throw "arrayuser was not a valid array";
} catch(e) {
    console.error(e);
    elencouser = [];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM