JSON调用获取帖子评论数遇undefined报错,求异常处理方案
解决JSON调用返回undefined导致脚本崩溃的问题
嘿,咱们先揪出你代码里的问题——你现在是把值和字符串 "undefined" 做比较,但实际上当帖子没开启评论时,json.feed.entry[i].thr$total.$t 是JavaScript的undefined类型,不是字符串,所以你的判断条件根本不会触发,这才导致脚本崩溃。
给你几个靠谱的修复方案:
方案1:用typeof精准判断undefined类型
这是最稳妥的传统写法,能准确识别undefined的类型:
if (typeof json.feed.entry[i].thr$total.$t === 'undefined') { comments[i] = 0; } else { comments[i] = json.feed.entry[i].thr$total.$t; }
方案2:用可选链+空值合并运算符(更简洁)
ES6+的语法能让代码更清爽,还能避免thr$total本身不存在时的报错:
// 可选链?.会自动处理中间属性不存在的情况,空值合并??在值为undefined/null时返回0 comments[i] = json.feed.entry[i].thr$total?.$t ?? 0;
简单拆解下这两个语法的作用:
?.:如果thr$total不存在或者为null/undefined,就会直接返回undefined,不会抛出"属性不存在"的错误??:只有当左边的值是undefined或null时,才会返回右边的0,比||更精准(不会把0、空字符串这些假值误判成无效值)
这样不管帖子有没有开启评论,你的脚本都能平稳运行啦!
内容的提问来源于stack exchange,提问作者user2512569
相关产品推荐
相关产品推荐

