JavaScript 调试常见报错及原因分析
作者:木棉时间:2026-10-26 13:11:23浏览:206
本文介绍 JavaScript 调试中常见的四种报错类型:TypeError、ReferenceError、RangeError 和 SyntaxError。通过具体代码示例,分析每种错误产生的原因,如调用非函数、赋值无效、数组长度非法及语法错误等,帮助开发者快速定位并解决代码中的问题。
测试环境为 Chrome 浏览器,版本号 66.0.3359.170(正式版本),架构为 64 位。
TypeError 类型错误
该错误表示操作符接收到的数据类型不符合其要求。
//-------- 把不是函数的值当做函数调用
var foo = undefined;
foo();
// Uncaught TypeError: foo is not a function
// foo 不是一个函数
//-------- 调用对象中不存在的函数, 其实就是 undefined
var x = document.getElementByID('foo');
// Uncaught TypeError: document.getElementByID is not a function
// 调用的值不是一个函数
//-------- 调用未声明的方法
lala();
// Uncaught ReferenceError: lala is not defined
// lala 没有定义
//-------- 把 null 或 undefined 当成对象
var someVal = null;
someVal.foo;
// Uncaught TypeError: Cannot read property 'foo' of null
// 无法读取 null 的 foo 属性
var someVal = undefined;
someVal.foo;
// Uncaught TypeError: Cannot read property 'foo' of undefined
// 无法读取 undefined 的 foo 属性ReferenceError 引用错误
此类错误通常发生在尝试对不可赋值的变量进行赋值操作时。
//-------- 尝试给不能赋值的变量进行赋值。
function doSomething(){};
doSomething() = 'somevalue'
// Uncaught ReferenceError: Invalid left-hand side in assignment
// 赋值符的左侧无效RangeError 范围错误
该错误表明设定的值超出了该数据类型的合法范围,例如数字范围或数组长度的限制。
[].length = -1 // 数据的 length 不能小于 0
[].length = undefined //
// Uncaught RangeError: Invalid array length
// 无效的数组长度SyntaxError 语法错误
这表示代码无法被正确解析,存在语法层面的问题。
//-------- 拼接字符串,但是没有使用 + 号
'ni' 'hao'
// Uncaught SyntaxError: Unexpected string
// 意料之外的字符串
//-------- 没有使用成对的引号
var str = 'ni hao
// Uncaught SyntaxError: Invalid or unexpected toke
// 无效或意料之外的标记
//-------- 无效的正则
var reg = /[/
// Uncaught SyntaxError: Invalid regular expression: missing /至此,关于 JavaScript 调试常见报错及其原因的介绍结束。如需了解更多相关 JS 调试内容,建议查阅本站往期文章或继续浏览后续文章,感谢大家的支持!
作者最新文章
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
相关标签:
