<script>alert(a)</script> // 报错:a is not defined
<script>var a=12;alert(a)</script>//但报错后没有停止执行,弹了12
如果换一下位置
<script>var a=12;alert(a)</script>
<script>alert(a)</script> //代码正常
请问两个script标签该如何去理解?为什么第一个script报错了,但程序还能继续向下走,执行第二个script标签。这和平时写JS代码出错时:报错-停止执行,两者处理机制不同?谢谢!
<script>alert(a)</script> // 报错:a is not defined
<script>var a=12;alert(a)</script>//但报错后没有停止执行,弹了12
很简单,你可以理解为php的notice错误和ERROR错误,错误级别不同,效果也不同,如果你是语法错误之类的致命错误,js会停止后续执行。
等价于以下代码块
====>
因为变量提升的关系
等价于
效果和以下代码不同