1、 Uncaught TypeError: Cannot Read Property

这是 JavaScript 开发人员最常遇到的错误。当你读取一个属性或调用一个未定义对象的方法时,Chrome 中就会报出这样的错误。导致这个错误发生的原因有很多,常见的一种情况是在渲染 UI 组件时,不正确地初始化状态。

2、 TypeError: ‘undefined’ Is Not an Object (evaluating...)

这是在 Safari 中读取属性或调用未定义对象上的方法时发生的错误。您可以在 Safari Developer Console 中轻松测试。这与 1 中提到的 Chrome 的错误基本相同,但 Safari 使用了不同的错误消息提示语。

3、TypeError: Null Is Not an Object (evaluating...)

这是在 Safari 中读取属性或调用空对象上的方法时发生的错误。您可以在 Safari Developer Console 中轻松测试。

有趣的是,在 JavaScript 中,null 和 undefined 是不一样的,这就是为什么我们看到两个不同的错误信息。undefined 通常是一个尚未分配的变量,而 null 表示该值为空。要验证它们不相等,请尝试使用严格的相等运算符 ===:

在现实世界的例子中,这种错误可能发生的一种场景是:如果在加载元素之前尝试在 JavaScript 中使用元素。因为 DOM API 对于空白的对象引用返回值为 null。

任何执行和处理 DOM 元素的 js 代码都应该在创建 DOM 元素之后执行。js 代码按照 html 中的规定从上到下进行解释。

所以,如果 DOM 元素之前有一个标签,脚本标签内的 js 代码将在浏览器解析 html 页面时执行。如果在加载脚本之前尚未创建 DOM 元素,则会出现此错误。

4、(unknown): Script Error

当未捕获的 JavaScript 错误违背跨边界原则时,就会发生脚本错误。例如,如果将 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误(通过 window.onerror 处理程序发出的错误,而不是 try-catch 中捕获到的错误)将仅报告为“脚本错误”。这是浏览器的一种安全措施,主要用于防止跨域传递数据的情况出现。

将 Access-Control-Allow-Origin 设置为 *, 表示可以从任何域正确访问资源。* 如有必要,也可以用自己的域名进行替换,例如:

Access-Control-Allow-Origin: www.example.com

5、 TypeError: Object Doesn’t Support Property

当调用未定义的方法时,IE 中会发生这样的错误。这相当于 Chrome 中的 “undefined’ is not a function” 错误。

对于相同的逻辑错误,不同的浏览器可能会有不同的错误消息。

这是在 IE 的 Web 应用程序中使用 JavaScript 命名空间出现的一个常见问题。

出现这种情况的绝大部分原因是IE无法将当前名称空间内的方法绑定到this关键字。

6、TypeError: ‘undefined’ Is Not a Function

当调用未定义的函数时,Chrome 中就会发生这样的错误。

随着 JavaScript 编码技术和设计模式在过去几年中变得越来越复杂,回调和闭包中的自引用范围也相应增加,这是造成这种混乱现象的主要来源。

7、Uncaught RangeError: Maximum Call Stack

这是在很多种情况,Chrome 中发生的错误,一种情况是当你调用一个不会终止的递归函数时。

如果将值传递给超出范围的函数,也可能会发生这种情况。许多函数只接受特定范围内的数字输入值。

8、TypeError: Cannot Read Property ‘length’

这是 Chrome 中发生的错误,因为读取了未定义长度属性的变量。通常在数组中能够找到定义的长度,但是如果数组未初始化或变量名在另一个上下文中隐藏,则可能会出现这种错误。

9、 Uncaught TypeError: Cannot Set Property

当尝试访问未定义的变量时,总会返回 undefined。我们也无法获取或设置 undefined 的任何属性。

在这种情况下,应用程序将抛出“Uncaught TypeError cannot set property of undefined”。

10、ReferenceError: Event Is Not Defined

尝试访问未定义的变量或当前范围之外的变量时会引发此错误。如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。

IE 这样的浏览器提供了全局变量事件,Chrome 会自动将事件变量附加到处理程序中,Firefox 则不会自动添加事件变量。

结论

事实证明很多这些 null 或 undefined 的错误是普遍存在的。 一个类似于 Typescript 这样的好的静态类型检查系统,当设置为严格的编译选项时,能够帮助开发者避免这些错误。

IT技术分享社区

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

10个常见的JS语言错误总汇相关推荐

  1. execjs执行js出现window对象未定义时的解决_10个常见的JS语言错误总汇

    1. Uncaught TypeError: Cannot Read Property 这是 JavaScript 开发人员最常遇到的错误.当你读取一个属性或调用一个未定义对象的方法时,Chrome ...

  2. UML 10 种常见的域建模错误

    Technorati 标签: uml 这段时间在学 UML 建模,UML 10 中常见的域建模错误摘录如下: 1.立即关联指定多重度,确保每个关联都有明确的多重度 类图上有些关联度表示的是一对一的关系 ...

  3. 10种常见的HTML标签错误写法

    随着CSS的持续发展,XHTML和HTML5的流行,HTML也越来越受重视,尤其是标签的语义化.HMTL标签看似简单,但仍然有很多错误的用法,下面列举了一些常见的HTML标签错误用法: 错误1: 将块 ...

  4. C语言程序设计 | 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组

    动态内存管理目录: 动态内存函数的介绍 常见的动态内存函数的错误 柔性数组 为什么会有动态内存管理呢 我们在日常使用中,创建一个数组,一个变量时都会开辟空间 如: int a; //在栈上开辟一个四字 ...

  5. c语言数组常见错误,C语言数组在使用中常见的几种错误.pdf

    S C i 卜NOL & TE Q 月N创,)<白Y INI: 口书明A T I仁别 T 技 术 C 语言数组在使用 中常见 的几种错误 刘莉娜 (包头农牧学校 0 14030) 摘 要 ...

  6. R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar)

    R语言ggplot2可视化在散点图中的每个点上绘制两个错误条:常见的是垂直错误条,它对应于Y值点上的错误(error bar),添加与X轴(水平)相关的错误条(error bar) 目录

  7. JavaScript诞生二十年,作者Brendan Eich自述10天内开发出JS语言

    JavaScript 作者 Brendan Eich 制作了一个幻灯片,回顾了他在 1995 年 5 月的 10 天内开发出 JS 语言,描绘了 JS 在当前的演化. Brendan Eich 称,J ...

  8. 易语言POST里常见的JS加密方式,JS解密教程

    首先录制了套易语言POST从入门到JS解密的精通教程.估计近100集,正在更新中,目前暂时可以在网站上看前几集 在线看地址 https://www.bilibili.com/video/av39727 ...

  9. 初学Python,我给你总结了常见的17个错误

    点击"视学算法","置顶"公众号 重磅干货,第一时间送达 来源:开源中国 链接:https://www.oschina.net/question/89964_6 ...

最新文章

  1. 我自学python的路-我的python后端学习路线
  2. 查看windows下系统信息
  3. 老万的java技术书单:你还在吃快餐吗?
  4. java mybatis 代码生成器_Java MyBatis-Plus 代码生成器
  5. ANSYS——对称模型对称边界的确定以及对称边界的约束施加问题
  6. Codeigniter 3 拓展HMVC
  7. Oracle入门(十三B)之高级查询(上)
  8. LongAdder类学习笔记
  9. 【log4cpp_学习】1_log4cpp的安装
  10. 如何查看谷歌卫星地图每级分辨率的两种方法
  11. CC2500调试心得
  12. 软件测试面试中90%会遇到的问题;你会搭建测试环境吗?
  13. 通达信波段王指标公式主图_通达信波段操盘主图指标公式
  14. 怎么拆分PDF文档?一分钟学会拆分PDF文档的方法
  15. Linux下的数学工具Maxima 简明教程(上)
  16. 杭州5.8万人面临饮水难 一村庄居民一月未沐浴
  17. 用Python做三角形的面积
  18. 调用第三方地图app导航(高德、百度、腾讯)
  19. Tomcat7 部署CGI程序
  20. 小陈老师、雪人 HRBUST - 1176(优先队列+)

热门文章

  1. 模板类 Template Classes 以及模板类编译时的处理
  2. Val编程-文本操作
  3. 【pyqt5学习】——graphicView显示opencv图像
  4. Halcon例程详解(基于卡尺工具的匹配测量方法) —— measure_stamping_part.hdev
  5. 深度学习基础(二)激活函数
  6. memcpy(cv::Mat.data,unsigned char *,320x240),保存数据失真问题解决方法
  7. 剑指offer——最小的K个数和数组中第K大的元素
  8. A Web Module That Uses JavaServer Faces Technology: The hello2 Example
  9. 【UOJ#246】套路(动态规划)
  10. 面向对象写选项卡、拖拽