js--undefined在计算时的小坑


  • 微信扫码关注公众号 :前端前端大前端,追求更精致的阅读体验 ,一起来学习啊
  • 关注后发送关键资料,免费获取一整套前端系统学习资料和老男孩python系列课程
    在这里插入图片描述

题目

在这里插入图片描述

code

function calc(obj={}) {

    let sum;
    if (Object.keys(obj).length === 0) {
        return 0
    }

    for (let k in obj) {
      sum+=obj[k];
    }
    return sum

}
  • 也许你的代码是这样的,当对象为空确实返回预期0
  • but,不为空,,返回了NaN,,累加每一项都是数字,问题不在这,那在哪呢?
  • 关键在函数体第一句let sum; 这里并没有初始化赋值,所以默认是undefined,而数字与undefined的运算自然是NaN
  • 改成let sum=0;就好了
发布了396 篇原创文章 · 获赞 786 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/qq_42813491/article/details/102994564