For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
任何一个专业的学习或者工作中都有出错的时候,对于JavaScript也是如此,今天达内教育就针对JavaScript方面的知识点给大家介绍下,来看看吧,3大JavaScript常见的错误都在这里了!
查看了数千个项目后,发现了3个最常见的JavaScript错误提示。我们会告诉你什么原因导致了这些错误,以及如何防止这些错误发生。如果你能够避免落入这些“陷阱”,你将会成为一个更好的开发者。
JavaScript常见错误Top3:
为了便于阅读,我们将每个错误描述都尽量简化。接下来,让我们深入到每一个错误,来了解是什么会导致它,以及如何避免这个问题。
1、(unknown):Scripterror
当未捕获的JavaScript错误(通过window.onerror处理程序引发的错误,而不是捕获在try-catch中)被浏览器的跨域策略限制时,会产生这类的脚本错误。例如,如果您将您的JavaScript代码托管在CDN上,则任何未被捕获的错误将被报告为“脚本错误”而不是包含有用的堆栈信息。这是一种浏览器安全措施,旨在防止跨域传递数据,否则将不允许进行通信。
要获得真正的错误消息,请执行以下操作:
1.设置‘Access-Control-Allow-Origin’头部
将Access-Control-Allow-Origin标头设置为*表示可以从任何域正确访问资源。
在Nginx中设置如下:
将add_header指令添加到提供JavaScript文件的位置块中:
2.在<script>中设置crossorigin="anonymous"
在您的HTML代码中,对于您设置了Access-Control-Allow-Origin的每个脚本,在script标签上设置crossorigin=“anonymous”。在脚本标记中添加crossorigin属性之前,请确保验证上述header正确发送。
在Firefox中,如果存在crossorigin属性,但Access-Control-Allow-Origin头不存在,则脚本将不会执行。
2、TypeError:Objectdoesn’tsupportproperty
这是您在调用未定义的方法时发生在IE中的错误。您可以在IE开发者控制台中进行测试。
这相当于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();
3、TypeError:‘undefined’isnotafunction
当您调用未定义的函数时,这是Chrome中产生的错误。您可以在Chrome开发人员控制台和MozillaFirefox开发人员控制台中进行测试。
执行上面的代码会导致以下错误:
“UncaughtTypeError:this.clearBoardisnotafunction”。
原因应该是清楚的,即执行上下文不理解导致的指向错误。
总结
我们看到上面的3个最常见的错误,其实所涉及的知识点并不难。当你认真读过《你不知道的JavaScript》上卷后,这些错误基本就不会再出现了。
归根结底是对JavaScript基础知识掌握的不扎实。
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与联系我们,我们会予以更改或删除相关文章,以保证您的权益!