通过 Error 构造器我们可以创建一个错误对象,当程序运行出错时,Error的实例对象就会被抛出。
注意 : fileName 和 lineNumber 参数是非标准的api,使用时需要注意其兼容。
除了通用的Error构造函数外, js还有6个其他类型的错误构造函数。
另外 : 还有一个非标准的错误构造函数 IntervalError : js引擎内部的错误, 如递归太多.
在Node.js中, 除了标准的js错误之外, 还有以下几类错误:
所有由 Node.js 引起的 JavaScript 错误与系统错误都继承自或实例化自标准的 JavaScript <Error> 类,且保证至少提供类中的属性。
在Node.js或某些浏览器环境中可能会包含 code, stack 等信息
Node.js中 : 对于所有的 EventEmitter 对象,如果没有提供一个 'error' 事件句柄,则错误会被抛出,并造成 Node.js 进程报告一个未处理的异常且随即崩溃,除非: 适当地使用 domain 模块或已经注册了一个 [ process.on('uncaughtException') ] 事件的句柄。
js reduce() 方法对数组中的每个元素执行一个由您提供的 reducer 函数(升序执行),将其结果汇总为单个返回值。
例如:
reducer 函数接收4个参数:
Accumulator (acc) (累计器)
Current Value (cur) (当前值)
Current Index (idx) (当前索引)
Source Array (src) (源数组)
您的 reducer 函数的返回值分配给累计器,该返回值在数组的每个迭代中被记住,并最后成为最终的单个结果值。
如果数组为空且没有提供initialValue,会抛出错误TypeError: reduce of empty array with no initial value
可以通过添加initialValue来解决。
详见: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce