JS常见错误

常见错误类型

  • TypeError 类型错误
  • Script error 脚本错误
  • RangeError 范围错误
  • ReferenceError 引用错误
  • exception 赋值错误
  • SyntaxError 语法错误
  • URIError URL错误
  • EvalError eval 错误

TypeError (类型错误)

Type Error:Uncaught TypeError:Cannot read property 'xxx' of undefined
//	调用了对象不存在的方法。
TypeError:'undefined' is not an object
//	使用某个变量,拿到了一个未分配的变量,即 undefined,然后又引用 undefined。例如:绑定到一些dom上
TypeError:'null' is not an object
//	null 表示该值为空,这种错误可能发生的场景是,在加载元素之前尝试在 JS中使用元素,因为 DOM API对于空白对象引用返回值为 null。
TypeError:Object doesn't support property
//	对象不支持该属性,多出现在IE浏览器的兼容问题上
TypeError:...is not a function
//	调用未定义的函数时,在 谷歌浏览器中产生的错误,变量或参数不是预期类型,比如,对字符串/布尔值/数值等原始类型的值使用 new命令
TypeError:Cannot read property 'length' of undefined
//	因为读取未定义变量的长度属性,通常会在数组中找到定义的长度,但是如果数组未初始化或者变量名称在另一个上下文中隐藏,则可能会遇到此错误。
Uncaugt TypeError:Cannot set property ... of undefined
//	尝试访问一个未定义的变量时,它总是返回 undefined,我们不能获取或设置任何未定义的属性
Uncaught TypeError:Converting circular Structure toJSON
//	一般发生在JSON.stringify 序列化一个存在循环引用的对象时,移除将要被转为 JSON字符串对象内部的循环引用
//	有时候引用了一个没有定义的对象的时候,该错误一会出现

脚本错误

(unknown);Script error

当未捕获的 JavaScript错误 (通过 window.onerror处理程序引发的错误,而不是捕获在 trycatch中) 被浏览器的跨域策略限制时,会产生这类的脚本错误
这是一种浏览器安全措施,旨在防止跨域传递数据,否则将不允许进行通信

范围错误

Uncaught RangeError:Maximum call stack size exceeded

最大堆栈超过了最大值,一般这种错误会在递归函数中出现,递归没找到出口,死循环了

Uncaught RangeError: Invalid array length

无效的数组错误长度,通常会在一下情形中出现:

  • 当创建一个长度 为负数或者长度大于232的 Array 和 ArrayBuffer时
  • 当设置 Array.length 属性为负数或者长度大于等于232时。
RangeError:invalid string length

有时候会出现在双重 循环时,内层和外层使用了同一个变量,就会出现这种错误

引用错误 (ReferenceError)

ReferenceError: ... is not defined

引用了一个不存在的变量

RenferenceError: $ is not defined

此错误出现在要引入其他 js文件之前先引入 jq文件,先引入的先执行

Uncaught ReferenceError: Invalid left-hand side in asignment

将变量赋值给一个无法被赋值的对象

赋值错误

Uncaught exception:ReferenceError:Cannot assign to 'this'

当我们给一个不可以被赋值的变量赋值,会发生错误。所以要确保不给函数或函数的返回值或 this关键字赋值。

语法错误

Uncaught SyntaxError:Unexpected token

通常发生在缺少括号或分号时,但是要注意,有时候该错误提示的行号会有误差。

Uncaught SyntaxError:Unexpected token ILLEGAL

字符串字母量缺少闭合的引号,确保所有字符串都包含闭包的引导

Uncaught SyntaxError: Invalid or unexpected token

变量名错误

Uncaught SyntaxError:Unexpected string

缺少括号或加号,多出现在对字符串的拼接中

URL错误

Uncaught URIError: URI malformed

与url相关函数参数不正确,主要是 encodeURI(),decodeURI(),encodeURIComponent(),decodeURIComponent(),escape() 和unescape(),这六个函数。多出现在,url中包含了"%"等字符时。

Eval错误

eval 函数没有被正确执行,或对 eval 函数非法调用时出现

你可能感兴趣的:(JS常见错误)