不仅能存储字符串,还能存其它类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="./css/style.css">
</head>
<body>
<script>
'use strict';
(function () {
var ls = window.localStorage;
function oops() {
return console.warn('你的浏览器不支持本地存储');
}
function getItem(key) {
var data = ls.getItem(key);
data = JSON.parse(data) || {};
if (data.time === 0) {
return data.value;
} else if (Date.now() > data.time) {
ls.removeItem(key);
return '';
} else {
return typeof data.value !== "undefined" ? data.value : '';
}
}
function setItem(key, value, time) {
if (value === 'undefined') {return};
var data = {
time: time ? Date.now() + time : 0,
value: value
}
data = JSON.stringify(data);
try {
ls.setItem(key, data);
} catch (e) {
ls.clear();
ls.setItem(key, data);
}
}
function removeItem(key) {
ls.removeItem(key);
}
function clear() {
ls.clear();
}
window.cacheStorage = {
getItem: ls ? getItem : oops,
// 可不可以写成 getItem == ls ? getItem : oops 用等号来代替冒号
setItem: ls ? setItem: oops,
removeItem: ls ? removeItem : oops,
clear: ls ? clear : oops
}
}) ()
</script>
</body>
</html>