この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
135. localStorageに期限をつける

const myLocalStorage = {
  setItem: function(key, value, ttl) {
    const item = {
      value: value,
      expiry: new Date().getTime() + ttl
    };
    localStorage.setItem(key, JSON.stringify(item));
  },
  getItem: function(key) {
    const itemStr = localStorage.getItem(key);
    if (!itemStr) {
      return null;
    }
    try {
      const item = JSON.parse(itemStr);
      if (new Date().getTime() > item.expiry) {
        localStorage.removeItem(key);
        return null;
      }
      return item.value;
    } catch (error) {
      return null;
    }
  }
};

期限をつけるために、setItemの引数としてttl(time to live)を追加し、それを元に期限切れを判定しています。getItemの場合、期限切れの場合はnullを返します。例外が発生した場合もnullを返すようにしています。