You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:如何在for..of循环内抛出错误?代码调试求助

修正混合数组求和函数的错误

你代码里有几个关键问题导致无法正确抛出错误,下面逐个说明并给出修复后的代码:

主要错误点

  • 数组类型判断错误:JavaScript中typeof数组返回的是'object',而非'array',判断数组必须用Array.isArray(element)。
  • 错误构造函数拼写错误:抛出错误时要用大写的Error构造函数,小写的error不是内置构造函数,会导致未定义错误。
  • 遗漏null的情况:typeof null也返回'object',如果需要排除null(它不是对象实例),要在判断里加上element !== null。

修复后的代码

const mixedArr = [6, 12, 'miami', 1, true, 'barca', '200', 'lisboa', 8, 10, 
 { "color": "purple",
  "type": "minivan"}]


function sum(mix) {
  if (mix.length === 0) return 0;
  let mixedSum = 0;
  for (const element of mix) {
    if (typeof element === 'string') {
      mixedSum += element.length;
    } else if (Array.isArray(element) || (typeof element === 'object' && element !== null)) {  
      throw new Error('error');
    } else { 
      mixedSum += element;
    }
  }
  return mixedSum;
};

console.log(sum(mixedArr)) // 执行后会正确抛出Error

额外说明

循环里的element最好加上const声明,避免变量泄漏到全局作用域,这是JavaScript的最佳实践之一。现在这个函数遇到数组或对象元素时会正确抛出错误,应该能通过你的Jasmine测试。

内容的提问来源于stack exchange,提问作者Jorge Mendez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:55:14