我敢说在座的所有人都遇到过这些JS常见的错误【谨以此篇记录成长】

4 篇文章 1 订阅
3 篇文章 2 订阅

一、TypeError(类型错误)
(1)

TypeError:Uncaught TypeError: Cannot read property 'XXX' of undefined

调用了对象不存在的方法。

(2)

TypeError:'undefined'is not an object

多半是使用了某个变量,拿到了一个尚未分配的变量,即undefind,然后用又undefined去做了一些事情。比如说:绑定到某些dom上面等…

(3)

TypeError:  'null' is not an object

null 表示该值为空。这种错误可能发生场景是:在加载元素之前尝试在 JS中使用元素。 因为 DOM API 对于空白的对象引用返回值为 null。

(4)

TypeError: Object doesn't support property

对象不支持该属性,多出现在IE浏览器的兼容问题上。

(5)

TypeError: ... is not a function

调用未定义的函数时,在 Chrome浏览器中产生的错误,变量或参数不是预期类型,比如,对字符串、布尔值、数值等原始类型的值使用new命令

(6)

TypeError:Cannot read property 'length' of undefined

因为读取未定义变量的长度属性,通常会在数组中找到定义的长度,但是如果数组未初始化或者变量名称在另一个上下文中隐藏,则可能会遇到此错误。
(7)

 Uncaught TypeError: Cannot set property ... of undefined

尝试访问一个未定义的变量时,它总是返回 undefined,我们不能获取或设置任何未定义的属性。

(8)

 Uncaught TypeError: Converting circular structure toJSON
  • 该错误一般情况下总是发生在使用 JSON.stringify 序列化一个存在循环引用的对象时,移除将要被转换为 JSON 字符串对象内部的循环引用。
  • 但是有时候引用了一个没有定义的对象的时候,该错误也会出现。

二、脚本错误

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

三、范围错误
(1)

Uncaught RangeError: Maximum call stack size exceeded
  • “最大堆栈超过了最大值”,一般这种错误也是在递归函数当中出现。
  • 当你调用一个不终止的递归函数时或者将值传递给超出范围的函数,会报出的错,检查函数的递归调用,确保函数不是无限递归的

(2)

Uncaught RangeError: Invalid array length

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

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

(3)

RangeError: Invalid string length

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

四、引用错误
(1)

ReferenceError : ... is not defined

引用了一个不存在的变量。
(2)

ReferenceError: $ is not defined

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

(3)

Uncaught ReferenceError: Invalid left-hand side in assignment

将变量赋值给一个无法被赋值的对象。
  
五、赋值错误

Uncaught exception: ReferenceError: Cannot assign to "this"

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

六、语法错误
(1)

Uncaught SyntaxError: Unexpected token ;

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

Uncaught SyntaxError: Unexpected token ILLEGAL

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

(3)

Uncaught SyntaxError: Invalid or unexpected token 

变量名错误 。
  
(4)

Uncaught SyntaxError: Unexpected string 

缺少括号或加号,我都遇到过,嘤嘤嘤,多出现在对字符串的拼接中。

七、URL错误

Uncaught URIError: URI malformed

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

八、EvalError(eval错误)

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


  • 以后遇到新型报错再来更新~~~
  • 如有错误,欢迎大家指出,小生感激不尽~~~
  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值