Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript-为什么可以';我使用存储变量而不是本地存储吗?_Javascript - Fatal编程技术网

javascript-为什么可以';我使用存储变量而不是本地存储吗?

javascript-为什么可以';我使用存储变量而不是本地存储吗?,javascript,Javascript,因此,我尝试替换下面使用本地存储的代码 var myButton = document.querySelector('button'); var myHeading = document.querySelector('h1'); function setUserName() { var myName = prompt('Please enter your name.'); localStorage.setItem('name', myName); myHeading.textCon

因此,我尝试替换下面使用本地存储的代码

var myButton = document.querySelector('button');
var myHeading = document.querySelector('h1');

function setUserName() {
  var myName = prompt('Please enter your name.');
  localStorage.setItem('name', myName);
  myHeading.textContent = 'Mozilla is cool, ' + myName;
}
if(!localStorage.getItem('name')) {
  setUserName();
} else {
  var storedName = localStorage.getItem('name');
  myHeading.textContent = 'Mozilla is cool, ' + storedName;
}
myButton.onclick = function() {
  setUserName();
}
使用此代码从存储的变量中检索

var myButton = document.querySelector('button');
var myHeading = document.querySelector('h1');

var myName;
function setUserName() {
  myName = prompt('Please enter your name.');
  //localStorage.setItem('name', myName);
  myHeading.textContent = 'Mozilla is cool, ' + myName;
}
if(!myName) {
  setUserName();
} else {
  //var storedName = localStorage.getItem('name');
  myHeading.textContent = 'Mozilla is cool, ' + myName;
}
myButton.onclick = function() {
  setUserName();
}

为什么它不能相应地工作?

刷新页面时,所有变量都会被清除。同样地,
if(!myName)
返回true并再次提示用户。LocalStorage允许您将变量保存为浏览器中页面刷新之间的键/值对


另外,在sessionStorage vs localStorage上查看以下答案:

刷新页面时,所有变量都被清除。同样地,
if(!myName)
返回true并再次提示用户。LocalStorage允许您将变量保存为浏览器中页面刷新之间的键/值对


另外,请在sessionStorage vs localStorage上查看以下答案:

当您加载页面时,
myName
未定义,因此它会提示输入名称。
localStorage
会在本地计算机上跨请求持久化,因此会保留本地存储。每次加载页面时,都会从fresh重新创建变量-它们基本上不会存储在allLocal存储中。Local存储允许您在浏览器中本地存储数据,因此它会在下次加载页面时保留数据。当您再次加载不带本地存储的页面时,该变量将被重置。当您加载页面时,
myName
未定义,因此它会提示输入名称。
localStorage
会在本地计算机上跨请求持久化,从而保留本地存储。每次加载页面时,都会从fresh重新创建变量-它们基本上不会存储在allLocal存储中。Local存储允许您在浏览器中本地存储数据,因此它会在下次加载页面时保留数据。当您在没有本地存储的情况下再次加载页面时,变量被重置。
LocalStorage
允许您保存键/值对,而不是每个sethx的变量,但有一件事我不明白;为什么在我加载页面(本地存储代码)时第一次不显示提示?程序跳过这一行并运行myHeading.textContent='Mozilla很酷,'+myName;这会导致浏览器显示null。好问题,我建议使用浏览器检查器查看本地和会话存储,并了解其中的情况。它以前可能存储了现在正在检索并需要清除的数据。如果打开inspector并转到storage,您将看到local和session的选项。你可以从那里删除它们。或者转到控制台(在inspector中)并输入
localStorage.clear()附言。如果您对答案感到满意,我希望您能打勾将其标记为正确答案。什么时候/如果有,由你决定
LocalStorage
允许您保存键/值对,而不是每个sethx的变量,但有一件事我不明白;为什么在我加载页面(本地存储代码)时第一次不显示提示?程序跳过这一行并运行myHeading.textContent='Mozilla很酷,'+myName;这会导致浏览器显示null。好问题,我建议使用浏览器检查器查看本地和会话存储,并了解其中的情况。它以前可能存储了现在正在检索并需要清除的数据。如果打开inspector并转到storage,您将看到local和session的选项。你可以从那里删除它们。或者转到控制台(在inspector中)并输入
localStorage.clear()附言。如果您对答案感到满意,我希望您能打勾将其标记为正确答案。什么时候/如果有,由你决定!