首页
学习
活动
专区
圈层
工具
发布

JavaScrip最容易犯的十大错误及其避免方法()

例如,如果您在CDN上托管JavaScript代码,任何未捕获的错误(冒泡到window.onerror处理程序的错误,而不是在try-catch中捕获)将被报告为“脚本错误”而不是包含有用的错误 信息...TypeError: Object doesn’t support property 当您调用未定义的方法时,这是在IE中发生的错误。...这相当于Chrome中的错误“TypeError:’undefined’不是函数”。 是的,不同的浏览器可以针对相同的逻辑错误具有不同的错误消息。...一种是当你调用一个不终止的递归函数时。 您可以在Chrome开发者控制台中对此进行测试。 8....在这种情况下,应用程序将抛出“Uncaught TypeError无法设置未定义的属性”。 10.

4.2K10

1000多个项目中的十大JavaScript错误以及如何避免

(unknown): Script Error 当未捕获的 JavaScript 错误违背跨边界原则时,就会发生脚本错误。...例如,如果将 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误(通过 window.onerror 处理程序发出的错误,而不是 try-catch 中捕获到的错误)将仅报告为“脚本错误...TypeError: Object Doesn’t Support Property 当调用未定义的方法时,IE 中会发生这样的错误。 ?...TypeError: ‘undefined’ Is Not a Function 当调用未定义的函数时,Chrome 中就会发生这样的错误。 ?...如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。IE 这样的浏览器提供了全局变量事件,Chrome 会自动将事件变量附加到处理程序中,Firefox 则不会自动添加事件变量。

11.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    1000多个项目中的十大JavaScript错误以及如何避免

    例如,如果将 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误(通过 window.onerror 处理程序发出的错误,而不是 try-catch 中捕获到的错误)将仅报告为“脚本错误...Rollbar.isAwesome(); TypeError: ‘undefined’ Is Not a Function 当调用未定义的函数时,Chrome 中就会发生这样的错误。...发生以上错误的原因是,当你调用 setTimeout( ) 时,实际上是在调用 window.setTimeout( ),传递给 setTimeout( ) 的匿名函数是在窗口对象的上下文中定义的...[image.png] 如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。...IE 这样的浏览器提供了全局变量事件,Chrome 会自动将事件变量附加到处理程序中,Firefox 则不会自动添加事件变量。

    8.9K30

    10 种最常见的 Javascript 错误

    (unknown): Script error 当未捕获的 JavaScript 错误(通过window.onerror处理程序引发的错误,而不是捕获在try-catch中)被浏览器的跨域策略限制时,会产生这类的脚本错误...例如,如果您将您的 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误将被报告为“脚本错误” 而不是包含有用的堆栈信息。...TypeError: ‘undefined’ is not a function 当您调用未定义的函数时,这是 Chrome 中产生的错误。...如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。像 IE 这样的旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样的库试图规范化这种行为。...尽管如此,最好使用传入事件处理函数的函数。

    9.5K80

    1000个项目中前10名的JavaScript错误介绍

    (unknown): Script error 当未捕获的 JavaScript 错误(通过window.onerror处理程序引发的错误,而不是捕获在try-catch中)被浏览器的跨域策略限制时...例如,如果您将您的 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误将被报告为“脚本错误” 而不是包含有用的堆栈信息。...TypeError: ‘undefined’ is not a function 当您调用未定义的函数时,这是 Chrome 中产生的错误。...如果在使用事件处理系统时遇到此错误,请确保使用传入的事件对象作为参数。像 IE 这样的旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。像 jQuery 这样的库试图规范化这种行为。...尽管如此,最好使用传入事件处理函数的函数。

    8.8K10

    JavaScript 错误处理大全【建议收藏】

    如果异常是未捕获的,也就是说程序员没有采取任何措施来捕获它,则程序将会崩溃。 你在什么时候及在什么地方捕获代码中的异常取决于特定的用例。 例如,你可能想要在栈中传播异常,使程序完全崩溃。...当发生致命的错误,需要更安全地停止程序而不是处理无效数据时,你可能需要这样做。 介绍了基础知识之后,现在让我们将注意力转向同步和异步 JavaScript 代码中的错误和异常处理。...如果失败了,或者决定不去捕获它,则异常可以在栈中冒泡。 从本质上讲,这还不错,但是在不同的环境下对未捕获的 rejection 的反应不同。...更好地捕获他们! 错误处理 “promisified” 计时器 使用计时器或事件无法捕获从回调引发的异常。...在回调模式中,异步 Node.js API 接受通过事件循环处理的函数,并在调用栈为空时立即执行。

    7.3K50

    JavaScript错误处理完全指南

    如果这个异常 未捕获,即程序员没有采取任何措施来捕获它,则程序将崩溃。 在何时何地捕获代码中的异常取决于具体的用例。 例如,你可能想在堆栈中传播一个异常,以使程序完全崩溃。...与 setTimeout 一样,异步代码路径抛出的异常 无法从外部捕获,这将使程序崩溃。 在下一部分中,我们将了解如何使用 Promises 和 async/await 简化异步代码的错误处理。...如果我们失败了,或者决定不在这里捕获它,那么 异常就可以在堆栈中冒泡了。这本身并不坏,但是不同的环境对未捕获的拒绝的反应是不同的。...所以最好捕获它们! “Promise 化”计时器的错误处理 使用计时器或事件无法捕获从回调抛出的异常。...处理,并在 调用堆栈 为空时立即执行。

    5.8K20

    10 种 JavaScript 最常见的错误

    3、 TypeError: null is not an object 这是在 Safari 中读取属性或调用空对象上的方法时发生的错误。...JavaScript 错误(通过 window.onerror 处理程序引发的错误,而不是捕获在 try-catch 中)被浏览器的跨域策略限制时,会产生这类的脚本错误。...例如,如果您将您的 JavaScript 代码托管在 CDN 上,则任何未被捕获的错误将被报告为“脚本错误” 而不是包含有用的堆栈信息。...Rollbar.isAwesome(); 6、 TypeError: ‘undefined’ is not a function 当您调用未定义的函数时,这是 Chrome 中产生的错误。...如果在使用 event 时遇到此错误,请确保使用传入的事件对象作为参数。像 IE 这样的旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。

    11.7K20

    【Python 入门第十七讲】异常处理

    错误是程序中的问题,程序将因此停止执行。另一方面,当发生一些内部事件时,会引发异常,这些事件改变了程序的正常流程。...TypeError:当操作或函数应用于错误类型的对象(例如将字符串添加到整数)时,将引发此异常。NameError:当在当前作用域中找不到变量或函数名称时,将引发此异常。...ValueError:当使用无效的参数或输入调用函数或方法时,例如,当字符串不表示有效整数时,尝试将字符串转换为整数,则会引发此异常。...注意:Exception 是 Python 中所有异常的基类。可以阅读源码查看异常层次结构。例:TypeError:当操作或函数应用于错误类型的对象时,会引发此异常。...仅当 try 子句未引发异常时,代码才会进入 else 块。

    1.3K11

    关于 JavaScript 错误处理的最完整指南(上半部)

    ; throw null; 但是,最好避免这些事情:始终抛出正确的错误对象,而不是一些基本类型。 这样有助于在代码中,错误处理的一致性。...如果异常未被捕获,也就是说,程序员不采取任何措施来捕获它,程序将崩溃。 何时何地捕获代码中的异常取决于特定的用例。 例如,我们可能想在堆栈中传递一个异常,以使程序完全崩溃。...浏览器中异步操作有:定时器相关的函数、事件和 Promise。 异步中的错误处理不同于同步的错误处理。我们来看一些例子。 大家都说简历没项目写,我就帮大家找了一个项目,还附赠【搭建教程】。...DOM 事件的错误处理机制遵循任何异步Web API的相同方案。...当 img 标签或 script 标签遇到不存在的资源时,onerror事件处理程序都会触发。 考虑下面示例: ...

    2K30

    实现一个简单的 JavaScript 状态机

    当我们从服务器获得这样的模型时,turnstileStates 结构中的函数可以存在一个模型参数。...步骤3:捕获事件和事件处理 const turnstileEvents = { coinEvent : { handleCoin : function(e) { if (e.data.coinval...这个方法的一个特别之处在于三个组件中的关注点的清晰分离 —— 状态、事件/事件处理handler和控制器。总之,把状态机用于前端应用能够有助于构建干净且健壮的 UI。...往期精选 BootstrapVue 入门 JavaScript的工作原理:引擎、运行时和调用堆栈 用 TypeScript 开发 Node.js 程序 快速上手最新的 Vue CLI 3 JavaScript...程序员可以从C ++中学到些什么 在同一基准下对前端框架进行比较 Edge 拥抱 Chromium 对前端工程师意味着什么?

    2K20

    TypeError: ‘NoneType‘ object is not subscriptable | 完美解决方法

    函数未返回值导致NoneType错误 一个典型的例子是函数在没有显式return值时,Python默认返回None。如果你随后尝试对该返回值进行下标操作,就会导致错误。...从字典中获取值为None 在使用字典的get方法时,如果指定的键不存在,默认情况下返回None。当你试图对返回的值进行下标操作时,就会引发TypeError。...处理函数返回None的安全性 为了避免函数返回None导致的下标错误,你可以在调用函数时进行安全检查,确保返回值不是None。...使用try-except进行错误处理 有时,最好是使用try-except块捕获下标操作引发的异常,以便程序能继续运行或提供更友好的错误提示。...表格总结 错误场景 解决方案 函数未返回值导致NoneType错误 确保函数返回有效的值 对未初始化的对象进行下标操作 检查对象是否为None并初始化适当的值 从字典中获取到None值 为字典的get

    5.1K10

    Promise机制详解

    前两个函数对应 promise 的两种状态 fulfilled 和 rejected 的回调函数。第三个函数用于处理进度信息(对进度回调的支持是可选的)。...(rejected){ //当 promise 状态变成 rejected 时,调用此函数 },function(progress){ //当返回进度信息时,调用此函数...) 如果 value 不是一个 promise ,那么下一事件循环 callback 会被调用, value 作为 callback 的传入值。...的状态已经失败或者变成失败时,那么下一事件循环 errback 会被调用, reason 会作为失败的理由传入 errback 。...在 JQuery 的 Promise 对象的回调中抛出错误是个糟糕的主意,因为错误不会被捕获。 最后一个例子揭示了,实现 Promise 的关键是实现好 doResolve 方法,在完事以后触发回调。

    1.7K70

    TypeScript 官方手册翻译计划【一】:基础

    调用 message 函数 message() 复制代码 第一行代码访问了 message 的 toLowerCase 方法并调用它;第二行代码则直接调用了 message 函数。...这就是上面的代码会抛出 TypeError 的原因 —— 它表明字符串 "Hello World!" 无法作为函数被调用。...举个例子,看下面的函数: function fn(x){ return x.flip() } 复制代码 从代码可以看出,仅当存在一个带有 flip 属性的对象时,这个函数才可以正常运行,但 JavaScript...那么不妨我们改用一种方案,使用一个静态的类型系统,在代码实际执行前预测代码的行为。 静态类型检查 还记得之前我们将字符串作为函数调用时,抛出的 TypeError 错误吗?...(); 复制代码 未调用的函数: function flipCoin(){ // 其实应该使用 Math.random() return Math.random < 0.5 } // Operator

    1.1K10

    2022秋招前端面试题(九)(附答案)

    ');}, true);复制代码当容器元素及嵌套元素,即在捕获阶段又在冒泡阶段调用事件处理程序时:事件按DOM事件流的顺序执行事件处理程序:父级捕获子级捕获子级冒泡父级冒泡且当事件处于目标阶段时...,事件调用顺序决定于绑定事件的书写顺序,按上面的例子为,先调用冒泡阶段的事件处理程序,再调用捕获阶段的事件处理程序。...比如点击按钮,这是个事件(Event),而负责处理事件的代码段通常被称为事件处理程序(Event Handler),也就是「启动对话框的显示」这个动作。...DOM2 级事件,通过 addEventListener 注册事件,通过 removeEventListener 来删除事件,一个事件可以有多个事件处理程序,按顺序执行,捕获事件和冒泡事件DOM3级事件...array(可选):用于遍历的数组。initialValue(可选): 作为第一次调用 callback 函数时参数 preVal 的值。

    2.9K30

    2022秋招前端面试题(六)(附答案)

    ');}, true);复制代码当容器元素及嵌套元素,即在捕获阶段又在冒泡阶段调用事件处理程序时:事件按DOM事件流的顺序执行事件处理程序:父级捕获子级捕获子级冒泡父级冒泡且当事件处于目标阶段时...,事件调用顺序决定于绑定事件的书写顺序,按上面的例子为,先调用冒泡阶段的事件处理程序,再调用捕获阶段的事件处理程序。...使用浏览器缓存,有以下优点:减少了服务器的负担,提高了网站的性能加快了客户端网页的加载速度减少了多余网络数据传输事件触发的过程是怎样的事件触发有三个阶段:window 往事件触发处传播,遇到注册的捕获事件会触发传播到事件触发处时触发注册的事件从事件触发处往...通常认为 stopPropagation 是用来阻止事件冒泡的,其实该函数也可以阻止捕获事件。...array(可选):用于遍历的数组。initialValue(可选): 作为第一次调用 callback 函数时参数 preVal 的值。

    1.2K20

    【原译】javascript中的错误处理

    错误的方式   对于一些错误的处理,我从按钮的而事件中抽离出异常处理的方式,下面是单元测试函数的代码: function badHandler(fn) { try { return...这里异常事件在调用栈中进行冒泡,我喜欢的是现在错误现在会离开方便debugg的调用栈。在这个异常中,解释器会遍历整个栈寻找另一个错误处理函数。这样就可以有机会在调用栈的顶端处理这些错误。...尤其是在对待像JavaScript这类事件驱动机制的语言时,onerror的优势就更大了   现在我们可以使用全局处理函数来离开栈了,我们可以用来干什么呢。毕竟,调用栈还是存在的。...捕获栈信息   调用栈在定位问题时超级有用。好消息是,浏览器提供了这个信息。理所当然,查看错误异常中的栈属性不是标准的一部分,但是只在新的浏览器中可以使用。...我说过全局异常处理可以在任何执行上下文中执行,如果给window对象增加一个错误处理函数,就OK了。这样是不是既能处理捕获处理错误又能保持代码的优雅呢。全局的错误处理能让你的代码干净整洁。

    1.9K20

    【原译】javascript中的错误处理

    错误的方式 对于一些错误的处理,我从按钮的而事件中抽离出异常处理的方式,下面是单元测试函数的代码: function badHandler(fn) { try { return...这里异常事件在调用栈中进行冒泡,我喜欢的是现在错误现在会离开方便debugg的调用栈。在这个异常中,解释器会遍历整个栈寻找另一个错误处理函数。这样就可以有机会在调用栈的顶端处理这些错误。...尤其是在对待像JavaScript这类事件驱动机制的语言时,onerror的优势就更大了 ??现在我们可以使用全局处理函数来离开栈了,我们可以用来干什么呢。毕竟,调用栈还是存在的。...捕获栈信息 调用栈在定位问题时超级有用。好消息是,浏览器提供了这个信息。理所当然,查看错误异常中的栈属性不是标准的一部分,但是只在新的浏览器中可以使用。所以,你就可以这样来把错误日志发送给服务器了。...我说过全局异常处理可以在任何执行上下文中执行,如果给window对象增加一个错误处理函数,就OK了。这样是不是既能处理捕获处理错误又能保持代码的优雅呢。全局的错误处理能让你的代码干净整洁。

    2.5K90
    领券