10种JavaScript最常见的错误(小结)(2)

在您的 HTML 代码中,对于您设置了 Access-Control-Allow-Origin 的每个脚本,在 script 标签上设置 crossorigin=“anonymous”。在脚本标记中添加 crossorigin 属性之前,请确保验证上述 header 正确发送。

在 Firefox 中,如果存在crossorigin属性,但Access-Control-Allow-Origin头不存在,则脚本将不会执行。

5、 TypeError: Object doesn't support property

这是您在调用未定义的方法时发生在 IE 中的错误。 您可以在 IE 开发者控制台中进行测试。

10种JavaScript最常见的错误(小结)

这相当于 Chrome 中的 “TypeError:”undefined“isnotafunction” 错误。

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

对于使用 JavaScript 命名空间的 Web 应用程序,这是一个 IE 浏览器的常见的问题。 在这种情况下,99.9% 的原因是 IE 无法将当前名称空间内的方法绑定到 this 关键字。

例如:如果你 JS 中有一个命名空间 Rollbar 以及方法 isAwesome。 通常,如果您在 Rollbar 命名空间内,则可以使用以下语法调用 isAwesome 方法:

this.isAwesome();

Chrome,Firefox 和 Opera 会欣然接受这个语法。 但是 IE 却不会。 因此,使用 JS 命名空间时最安全的选择是始终以实际名称空间作为前缀。

Rollbar.isAwesome();

6、 TypeError: ‘undefined' is not a function

当您调用未定义的函数时,这是 Chrome 中产生的错误。 您可以在 Chrome 开发人员控制台和 Mozilla Firefox 开发人员控制台中进行测试。

10种JavaScript最常见的错误(小结)

10种JavaScript最常见的错误(小结)

执行上面的代码会导致以下错误:

“Uncaught TypeError:this.clearBoard is not a function”。

原因应该是清楚的,即执行上下文不理解导致的指向错误。

7、 Uncaught RangeError

当你调用一个不终止的递归函数就会发生这种错误。您可以在 Chrome 开发者控制台中进行测试。

10种JavaScript最常见的错误(小结)

此外,如果您将值传递给超出范围的函数,也可能会发生这种情况。

许多函数只接受其输入值的特定范围的数字。 例如:

toExponential(digits) 和 toFixed(digits) 接受 0 到 100

toPrecision(digits) 接受 1 到 100

10种JavaScript最常见的错误(小结)

8、 TypeError: Cannot read property ‘length'

这是因为读取未定义变量的长度属性而发生的错误。 您可以在 Chrome 开发者控制台中进行测试。

10种JavaScript最常见的错误(小结)

您通常会在数组中找到定义的长度,但是如果数组未初始化或者变量在另一个上下文中,则可能会遇到此错误。让我们用下面的例子来理解这个错误。

10种JavaScript最常见的错误(小结)

执行以上代码会报错:

Cannot read property 'length' of undefined

有两种方法可以解决这个问题:

10种JavaScript最常见的错误(小结)

10种JavaScript最常见的错误(小结)

9、 Uncaught TypeError: Cannot set property

当我们尝试访问一个未定义的变量时,它总是返回 undefined,我们不能获取或设置任何未定义的属性。 在这种情况下会将抛出 “Uncaught TypeError: Cannot set property”。

10种JavaScript最常见的错误(小结)

10. ReferenceError: event is not defined

当您尝试访问未定义的变量或超出当前作用域的变量时,会引发此错误。 您可以在 Chrome 浏览器中测试。

10种JavaScript最常见的错误(小结)

如果在使用 event 时遇到此错误,请确保使用传入的事件对象作为参数。像 IE 这样的旧浏览器提供了一个全局变量事件,但并不是所有浏览器都支持。

总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/01ffc0198b8e2e4d29e96e9c2199121b.html