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="https://blog.csdn.net/weixin_57666779/article/details/js/bootstrap.min.js"></script>
//当自定义js文件main.js放在头部是极有可能出现Uncaught ReferenceError: XXX is not defined, 正确的是应该放在body下面
<script src="https://blog.csdn.net/weixin_57666779/article/details/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)
这篇好文章是转载于:编程之路
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 编程之路
- 本文地址: /boutique/detail/tanhhfccib
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13