我正在使用远远低于此代码的代码,并且在我的chrome的localStorage区域中,{strong> null 显示在storeArrObj
的实际值之前。这是为什么 ?
完整代码
<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>
答案 0 :(得分:2)
第一次运行此代码时,localStorage['storageArrObj']
尚不存在:
if (localStorage.getItem('storageArrObj') === ""){
是假的。JSON.parse(localStorage.getItem('storageArrObj'));
返回null
。var parseStor =
。parseStor
被推送到storageArr
:storageArr.push(parseStor);
storageArr
,其中null
存储在localStorage
。解?
替换:
if (localStorage.getItem('storageArrObj') === ""){
使用:
if (localStorage.getItem('storageArrObj') === null){
或者用:
var stored = localStorage.getItem('storageArrObj');
if (stored === null || stored === ""){