TypeErrorTypeError
某个值不是预期的类型。这是最常见的 JavaScript 错误,在操作遇到类型不匹配的值时发生。
浏览所有 100 个 JavaScript 错误 错误代码,包含原因、修复方法和示例。
TypeError某个值不是预期的类型。这是最常见的 JavaScript 错误,在操作遇到类型不匹配的值时发生。
TypeError: x is not a function尝试将一个非函数的值作为函数调用。
TypeError: Cannot read properties of undefined/null尝试访问 undefined 或 null 上的属性或方法。
TypeError: Cannot set properties of undefined/null尝试对 undefined 或 null 赋值属性。
TypeError: x is not iterable在需要可迭代对象的位置(如 for...of 循环或展开运算符)使用了不可迭代的值。
TypeError: x is not a constructor尝试对非构造函数的值使用 new 关键字。
TypeError: Assignment to constant variable尝试对 const 声明的变量重新赋值。
TypeError: Cannot convert undefined or null to object接受对象参数的内置方法收到了 null 或 undefined。
TypeError: Reduce of empty array with no initial value在空数组上调用了 Array.reduce(),且未提供初始值。
TypeError: Cannot assign to read only property尝试写入只读属性,原因可能是对象被冻结或属性被定义为不可写。
ReferenceError引用了当前作用域中不存在的变量。
ReferenceError: x is not defined引用了在任何可访问作用域中均未声明的变量。
ReferenceError: Cannot access before initialization用 let 或 const 声明的变量在暂时性死区内被提前访问。
ReferenceError: Invalid left-hand side in assignment尝试对无法被赋值的目标进行赋值。
SyntaxErrorJavaScript 引擎遇到了不符合语言语法的代码。
SyntaxError: Unexpected token解析器在代码中遇到了该位置不应出现的标记(字符或关键字)。
SyntaxError: Unexpected end of input解析器到达输入末尾时仍期待更多代码,通常由未闭合的括号或字符串引起。
SyntaxError: JSON.parse unexpected characterJSON.parse() 遇到了非法 JSON 语法,例如单引号、尾随逗号或未加引号的键名。
SyntaxError: Missing ) after argument list函数调用缺少右括号。
SyntaxError: Unterminated string literal字符串字面量缺少结束引号。
SyntaxError: Illegal return statementreturn 语句被用于函数体之外。
SyntaxError: Identifier has already been declared在同一作用域内,使用 let 或 const 对同名变量进行了两次声明。
SyntaxError: Cannot use import statement outside a moduleES 模块 import 语法被用于未被视为模块的文件中。
SyntaxError: await is only valid in async functionsawait 关键字被用于 async 函数之外。
RangeError值不在预期范围内,例如无效的数组长度或超出调用栈大小。
RangeError: Maximum call stack size exceededJavaScript 调用栈已耗尽,通常由无限或过深的递归引起。
RangeError: Invalid array length创建数组时使用了无效的长度,例如负数或非整数。
RangeError: Invalid date向需要有效日期的 Date 方法传入了无效的日期字符串。
RangeError: precision is out of range传给 toFixed()、toPrecision() 或 toExponential() 的精度值超出了允许范围。
URIError全局 URI 处理函数(decodeURIComponent、encodeURI)接收到了格式错误的 URI。
EvalError与全局 eval() 函数相关的错误。在现代 JavaScript 中极少遇到。
InternalError: too much recursionFirefox 特有的错误,等同于 Chrome/Node.js 中的 RangeError: Maximum call stack size exceeded。
AggregateError包装多个错误的错误对象,通常在 Promise.any() 中所有 Promise 都被拒绝时抛出。
UnhandledPromiseRejectionPromise 被拒绝,但没有 .catch() 处理器或 try-catch 块来处理该拒绝。
DOMException: The operation was aborted操作通过 AbortController 信号被取消。
DOMException: NetworkError网络操作失败,通常发生在 fetch 请求期间网络不可达时。
DOMException: QuotaExceededError存储操作超出了 localStorage、IndexedDB 或其他浏览器存储的可用配额。
DOMException: SecurityError安全敏感操作被浏览器安全策略阻止。
DOMException: NotAllowedError浏览器 API 调用被阻止,因为该调用需要用户交互或未授予的权限。
CORS Error: No Access-Control-Allow-Origin浏览器拦截了跨域请求,因为服务器未返回必要的 CORS 响应头。
CORS Error: Preflight request failed浏览器的 CORS 预检 OPTIONS 请求被拒绝或返回了无效的 CORS 响应头。
ECONNREFUSED连接被拒绝,因为目标地址和端口上没有服务器在监听。
ECONNRESET远程服务器强制关闭了连接。
EADDRINUSE该地址(端口)已被另一个进程占用。
ENOTFOUNDDNS 查询失败,主机名无法解析为 IP 地址。
ETIMEDOUT连接或操作超时,远程主机未在规定时间内响应。
ENOENT指定路径上的文件或目录不存在。
EACCES进程没有访问该文件或资源的权限。
EPERM即使拥有相应权限,操作仍因操作系统级别的限制而被拒绝。
EMFILE进程已达到允许打开的最大文件描述符数量。
ENFILE系统范围内已打开文件总数达到上限。
EISDIR对一个目录路径执行了文件操作。
ENOTDIR对一个并非目录的路径执行了目录操作。
EEXIST文件创建操作失败,因为目标路径已存在。
EPIPE试图向读取端已关闭的管道或套接字写入数据。
ENOSPC磁盘已满,或 inode 表已耗尽。
ERR_HTTP_HEADERS_SENTHTTP 响应已发送后,又尝试设置响应头或发送响应。
ERR_MODULE_NOT_FOUNDES 模块的 import 无法解析,因为指定的文件不存在。
ERR_REQUIRE_ESM使用了 require() 来加载 ES 模块,此方式不被允许。
ERR_INVALID_ARG_TYPENode.js API 接收到了类型错误的参数。
ERR_INVALID_URL向 URL 构造函数或 Node.js API 传入了无效的 URL。
ERR_SOCKET_BAD_PORT为网络操作指定了无效的端口号。
ERR_TLS_CERT_ALTNAME_INVALID主机名与服务器 TLS 证书中的任何主题备用名称(SAN)均不匹配。
ERR_BUFFER_OUT_OF_BOUNDS试图在 Buffer 边界之外进行读写操作。
ERR_STREAM_PREMATURE_CLOSE流在完成全部读写操作之前被关闭。
ERR_WORKER_OUT_OF_MEMORYWorker 线程内存耗尽。
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memoryV8 引擎堆内存耗尽,导致 Node.js 进程崩溃。
ERR_MISSING_ARGS调用 Node.js API 函数时未传入必要的参数。
ERR_UNESCAPED_CHARACTERS在期望转义字符串的地方传入了包含未转义字符的字符串。
ERR_UNKNOWN_ENCODING向 Node.js API 传入了未知或不受支持的编码方式。
ERR_CRYPTO_INVALID_STATE在无效状态下执行了加密操作。
ERR_DLOPEN_FAILED原生插件(C++ .node 文件)加载失败。
ERR_OSSL_EVP_UNSUPPORTEDOpenSSL 操作不受支持,通常因为 Node.js 17+ 使用的 OpenSSL 3.0 默认禁用了遗留算法。
ERR_SERVER_ALREADY_LISTEN服务器已处于监听状态时,又调用了 server.listen() 方法。
ERR_FS_CP_DIR_TO_NON_DIR尝试将目录复制到非目录目标路径。
Error: Cannot find moduleNode.js 在所有搜索路径中均未找到指定模块。
ECONNABORTED连接被中止,通常是由于客户端超时。
EHOSTUNREACH目标主机不可达,通常由网络路由问题引起。
ENETUNREACH网络不可达;找不到到目标网络的路由。
ERR_ASSERTIONNode.js assert 模块的断言失败。
TypeError: Converting circular structure to JSONJSON.stringify() 遇到了包含循环引用的对象,无法将其序列化为 JSON。
TypeError: Method called on incompatible receiver一个方法以不符合预期类型的 `this` 值被调用。
TypeError: Cannot delete property of object在严格模式下尝试删除对象的不可配置属性。
TypeError: Cannot convert a Symbol value to a string尝试对 Symbol 进行隐式转换为字符串,此操作不被允许。
TypeError: Cannot add property, object is not extensible尝试向已被设为不可扩展的对象添加属性。
SyntaxError: Applying delete to unqualified name in strict mode在严格模式下,delete 运算符被用于普通变量名,此操作不被允许。
SyntaxError: Missing initializer in const declaration声明 const 变量时未提供初始值。
SyntaxError: JSON.parse: bad parsingFirefox 特有的错误消息,表示传入 JSON.parse() 的字符串不是有效的 JSON。
ERR_STREAM_WRITE_AFTER_END在流已结束后尝试向其写入数据。
ERR_HTTP2_STREAM_ERRORHTTP/2 流上发生了错误。
ERR_CHILD_PROCESS_STDIO_MAXBUFFER子进程产生的输出超出了 maxBuffer 限制。
ERR_INVALID_RETURN_VALUE函数返回了类型不匹配的值。
ERR_UNHANDLED_REJECTIONNode.js 配置为在未处理的 Promise 拒绝时抛出异常,且检测到了此类情况。
ERR_ASYNC_CALLBACK在期望异步回调的地方传入了非函数值。
ERR_PACKAGE_PATH_NOT_EXPORTED导入的包子路径未在该包的 exports 字段中定义。
ERR_IMPORT_ASSERTION_TYPE_FAILED导入断言指定的类型与实际模块类型不匹配。
ERR_NETWORK_IMPORT_DISALLOWED尝试从网络(HTTP/HTTPS)导入模块,但当前 Node.js 配置不允许此操作。
ERR_INSPECTOR_ALREADY_ACTIVATEDNode.js 调试器(inspector)被重复激活。
DOMException: InvalidStateError在对象处于无效状态时尝试执行该操作。
DOMException: DataCloneError对象无法通过结构化克隆算法进行克隆。