以下为ChatGPT自动生成的解答,正确与否请自行判断。
BFE.devAI解答 - JavaScript 代码题
135. 给localStorage添加过期时间
实现思路:
- 封装一个函数
myLocalStorage.setItem
,接收三个参数:key,value和过期时间(毫秒)。 - 在
setItem
函数中,先将 value 转为一个对象,存储时同时存入过期时间。 - 在
getItem
函数中,先获取到存储时间,如果时间已经过期,则清除该键值对并返回 null,否则返回存储的 value。
代码实现:
const myLocalStorage = {
setItem: function(key, value, expiredTime) {
const expired = new Date().getTime() + expiredTime;
const data = { value, expired };
localStorage.setItem(key, JSON.stringify(data));
},
getItem: function(key) {
const data = JSON.parse(localStorage.getItem(key));
if (data) {
if (!data.expired || data.expired >= new Date().getTime()) {
return data.value;
} else {
localStorage.removeItem(key);
}
}
return null;
}
};
使用示例:
myLocalStorage.setItem('bfe', 'dev', 1000);
console.log(myLocalStorage.getItem('bfe')); // 'dev'
setTimeout(() => {
console.log(myLocalStorage.getItem('bfe')); // null
}, 1000);