以下为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);