判空的疑问

判空的疑问

这里的2:22-2:40  的疑问,这里怎么会存在读取一篇文章的缓存状态?上面读取的都是总的缓存状态。也就应该说 只要6篇数据缓存当中 只要有一篇有缓存 就不会报错才对把? 为什么会存在读取一篇文章的缓存状态的情况?

http://img1.sycdn.imooc.com//climg/5f6cb0e40988d7d021980625.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,前半部分理解的还是有点问题。每点进一篇文章,会存储一篇文章的状态,并不是一下子存储6篇文章的状态。后面判断理解的没问题,postsCollection有值就会执行if语句,并不会管里面存储了几篇文章的状态。

好帮手慕星星 2020-09-25 11:44:16

同学你好,问题解答如下:

1、本身存储的就是每个页面的状态,放在一个对象中而已。如下

http://img1.sycdn.imooc.com//climg/5f6d66c509150ea303630057.jpg

postsCollection是存储的key,而值是每篇文章的状态,postId进行区分。并不是一开始就存储了6篇文章的状态,当点进一篇文章的时候才会进行存储。

2、在一开始没有存储内容的情况下,获取postsCollection是没有值的,为空字符串,可以输出看看

http://img1.sycdn.imooc.com//climg/5f6d673b096c386505010086.jpg

http://img1.sycdn.imooc.com//climg/5f6d6748093d46b102480041.jpg

所以需要初始化为空对象{},然后再往对象中添加每篇文章的状态。

自己再理解下,祝学习愉快!

  • 提问者 陈立天 #1
    我的理解是第一次点击页面给缓存设定了一个值 ,第二次在点击页面的时候 判断缓存里面就有值了 所以他就会给他setdata ,这时候的缓存里面是有6个内容的,所以如果对应的缓存是空的时候 他如果setdata了 这时候 读取不到所以会报错,所以要加多一个判空的条件。 这样理解对吧
    2020-09-25 11:51:17
提问者 陈立天 2020-09-24 22:57:21

3:54-4:04 这里讲的 为什么会赋值是空值 我不明白。 不是写了else条件么。应该就是永远不存在空的情况才对把

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师