JavaScript读取localStorage返回undefined的原因排查
问题根因
你的getValue方法缺少返回语句,是调用后返回undefined的直接原因。
JavaScript函数如果没有显式通过return关键字指定返回值,执行完成后默认返回undefined。你在getValue方法内虽然调用了localStorage.getItem(key)成功读取到了存储的数据,但没有将读取结果返回给方法调用方,因此外部调用该方法时拿到的结果始终是undefined。
修复方法
在getValue方法内的localStorage.getItem调用前添加return关键字,将读取到的结果返回即可,修正后的完整代码如下:
class UI{ save(key, value) { localStorage.setItem(key, value); } getValue(key) { return localStorage.getItem(key); } }
补充说明:localStorage仅支持存储字符串类型值,如果你需要存储对象、数组等非字符串类型数据,存储时需要先用JSON.stringify()将数据转为JSON字符串,读取后再用JSON.parse()转回原数据结构,否则读取到的内容会是不符合预期的字符串格式。
内容的提问来源于stack exchange,提问作者ahmed hussin
相关产品推荐
相关产品推荐

