超出存储容量时会抛出异常
localStorage
和sessionStorage
是有存储容量限制的,在localStorage
和sessionStorage
的异同中有提到。
一旦超出容量限制便会抛出QuotaExceededError
的错误。所以在使用Storage的时候最好加上try catch
。
存储类型只能为字符串
也就是说,存储其他的类型便会调用其toString
方法。例如,布尔值false
存入Storage再取出便是字符串"false"。同理,undefined
和null
也都会被转换成相应的字符串。这在开发中要格外小心,因为以上这些字符串在进行布尔判断的时候可都是为真的。
如果想要存储对象也不是不可以,只需要使用JSON.stringify
方法将对象转换为JSON字符串即可。使用时,再使用JSON.parse
方法将JSON字符串转换回对象。
sessionStorage的失效机制
sessionStorage
在页面刷新时并不会被失效。- 相同URL的不同标签页之间不能共享
sessionStorage