美文网首页
本地存储和会话存储 (JavaScript)

本地存储和会话存储 (JavaScript)

作者: 追梦人在路上不断追寻 | 来源:发表于2022-03-04 22:05 被阅读0次
    1. f12检查您所在的任何页面。
    2. 单击应用程序。
    3. 单击存储,您将在那里看到本地存储和会话存储。
    image.png

    本地存储和会话存储都存储键值对

    本地存储和会话存储的主要区别在于,在关闭浏览器后,存储在会话存储中的键值对会丢失。

    现在,让我们通过一些示例来了解如何对本地存储进行操作。

    示例1:将键值对提供给本地存储。

    localStorage.setItem("name", 'Rajat');
    
    
    localStorage

    在上面的示例中,我们看到了如何在本地存储中设置键值对。现在,让我们了解如何从本地存储中获取项目。
    示例 2:

    let name = localStorage.getItem('name')
    console.log(name)
    
    
    image.png

    现在,让我们尝试获取一些不存在的值。
    示例 3:

    let name = localStorage.getItem('name2')
    console.log(name)
    
    image.png

    如果您尝试从不存在的本地存储中获取某些内容,则结果为 null。

    很多时候我们希望将数组存储在本地存储中,因为数组很容易使用(我们有很多内置的数组方法)。但是,本地存储的一个限制是它将数组存储为字符串。

    localStorage.setItem('name', 'Rajat');
    let fruitsArray = ['Apple', 'Banana', 'Orange', 'Grapes', 'Mango']
    localStorage.setItem('imArray', fruitsArray);
    
    
    image.png

    为了克服这个问题☝️,我们使用 JSON.stringify。请看下面的实际操作:
    示例 4:将数组存储在本地存储中:

      localStorage.setItem('name', 'Rajat');
    
      let fruitsArray = ['Apple', 'Banana', 'Orange', 'Grapes', 'Mango']
      localStorage.setItem('imArray', JSON.stringify(fruitsArray));
    
    
    image.png

    示例 5:从本地存储中获取数组。

     console.log(localStorage.getItem('imArray'));
    
    image.png

    上面的结果可能看起来像一个数组,但我们从本地存储而不是数组获取字符串。让我证明一下。

     console.log(typeof localStorage.getItem('imArray'));
    
    image.png

    因此,为了从本地存储中获取数组,我们使用 JSON.parse。见下文。
    示例 6:从本地存储中获取数组?

     console.log(JSON.parse(localStorage.getItem('imArray')));
    

    因此,我们使用:

    1. JSON.stringify:将数组设置为本地存储中的值。
    2. JSON.parse:从本地存储中获取数组。

    示例 7:清除本地存储。

      localStorage.setItem('Name1', 'Rajat');
    
      let fruitsArray = ['Apple', 'Banana', 'Orange', 'Grapes', 'Mango']
      localStorage.setItem('impArray', JSON.stringify(fruitsArray));
      localStorage.clear()
    
    

    因此,我们可以使用localStorage.clear().

    示例 8:仅从本地存储中删除“name”键值对。

      localStorage.setItem('name', 'Rajat');
    
      let fruitsArray = ['Apple', 'Banana', 'Orange', 'Grapes', 'Mango']
      localStorage.setItem('imArray', JSON.stringify(fruitsArray));
    
      localStorage.removeItem('name');
    
    
    image.png

    正如您在上面看到的,为了删除我们使用的特定键值对localStorage.removeItem

    这就是关于本地存储的全部内容。

    我们在会话存储中运行类似的操作,唯一的区别是我们使用会话存储代替本地存储:

    sessionStorage.setItem("name, 'Rajat');
    sessionStorage.getItem("name");
    sessionStorage.setItem('imArray', JSON.stringify(fruitsArray));
    console.log(JSON.parse(sessionStorage.getItem('imArray')));
    sessionStorage.clear()
     sessionStorage.removeItem('Name1');
    
    

    让我重申一下:本地存储和会话存储之间唯一的主要区别是,一旦我们关闭浏览器,我们就会丢失会话存储中保存的任何内容。但是,本地存储并非如此。

    最后,让我们看看 MDN 怎么说:

    window的 localStorage 只读属性允许您访问 Document 来源的 Storage 对象;存储的数据跨浏览器会话保存。

    只读 sessionStorage 属性访问当前源的会话存储对象。sessionStorage 类似于 localStorage;不同之处在于,虽然 localStorage 中的数据不会过期,但 sessionStorage 中的数据会在页面会话结束时被清除。

    相关文章

      网友评论

          本文标题:本地存储和会话存储 (JavaScript)

          本文链接:https://www.haomeiwen.com/subject/fmzmrrtx.html