以下为ChatGPT自动生成的解答,正确与否请自行判断。

BFE.devAI解答 - JavaScript 代码题
135. 给localStorage添加过期时间

实现思路:

  1. 封装一个函数 myLocalStorage.setItem,接收三个参数:key,value和过期时间(毫秒)。
  2. setItem 函数中,先将 value 转为一个对象,存储时同时存入过期时间。
  3. 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);