js出现Uncaught ReferenceError: XXX is not defined错误的解决办法

这篇具有很好参考价值的文章主要介绍了js出现Uncaught ReferenceError: XXX is not defined错误的解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

javascript提示:Uncaught ReferenceError: XXX is not defined的意思是函数XXX()没有被定义。js一般出现Uncaught ReferenceError: XXX is not defined这样的错误,大概率是你把函数放在了window.onload里面。

出现这个问题的原因是:

1.window.onload事件是在整个页面包括dom结构、图片等等全部加载完成之后才会触发。把函数写在这里边是为了防止html还没加载完就执行了代码,但是如果你写在一个自己定义的函数中,那函数中的代码是在你调用这个函数的时候才会执行的。

2.如果将你自己的函数写在window.onload里,那么这个函数的作用域就仅仅是window.onload中,该函数是在一个匿名函数内部的局部函数,并不是全局函数,所以你调用时会显示未定义,类似java那个内部类。

3.HTML加载时由上往下的,在HTML加载的时候,遇到function关键字,声明一个函数的时候,就会在内存中开辟一个新的空间来对函数进行存储,方便以后进行调用。

所以,当将function XXX()写到window.onload()=function(){}内部的时候,需要整个页面加载完成的之后,才声明这个函数,也就意味着,当HTML加载到调用函数的时候,window.οnlοad=function(){}里面的函数XXX还没有被声明,这时候内存中就找不到function XXX(),于是会报错。

我补充一点:

是会html是自上而下加载,出现Uncaught ReferenceError: XXX is not defined,极大可能是js引用放在前面例如:

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <script src="./js/bootstrap.min.js"></script>

  //当自定义js文件main.js放在头部是极有可能出现Uncaught ReferenceError: XXX is not    defined, 正确的是应该放在body下面

  <script src="./js/main.js"></script> 

  <title>Document</title>

</head>

<body>

</body>

</html>


解决方法有两种:

1.将function XXX()移到window.onload()=function(){}外面,则HTML加载到<head></head>的时候就会声明函数XXX()了,所以进行绑定的时候就能够在内存中找到XXX()并进行调用。

2.用var XXX在window.onload()=function(){}外面先进行声明。作用域发生了变化,就可以进行调用。

来源自:js出现Uncaught ReferenceError: XXX is not defined错误的解决办法-织梦云编程网 (dedeyun.com)文章来源地址https://www.toymoban.com/news/detail-703650.html

到了这里,关于js出现Uncaught ReferenceError: XXX is not defined错误的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包