JS中script词法分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS中script词法分析相关的知识,希望对你有一定的参考价值。
核心:JS中的script是分段执行的。
1 <script> 2 var i = 10; 3 </script> 4 <script> 5 alert(i); 6 </script>
上面的例子中,弹出结果10。因为在之前script语句段定义的变量和函数可以再其他script语句段中使用。在一个js程序中,可以有多个script语句段,那么它们如何工作呢?
script执行过程:
1.读入第一个代码段
2.编译(声明变量,声明函数,语法检查,语义检查,代码优化,分析并得到代码书)
3.执行
4.读入下一代码段
5.编译
6.执行
7.读入下一代码段
......
n.结束
举个例子来说
1 <script> 2 //例1 3 alert(i); 4 </script>
1 <script> 2 //例2 3 alert(i); 4 var i=10; 5 </script>
例1的代码执行后,什么都不会弹出,因为已经报错了。但例2的代码会弹出undefined。因为i已经声明但没有赋值。因为代码段是先编译再执行,编译负责生成,执行负责赋值。
区分编译错误和运行错误:
1 <script> 2 alert(i; //编译错误 3 alert(i);//运行错误 4 alert(‘hello‘); 5 </script>
但无论是哪种错误,当前代码段中的后面的代码都不执行。
无论是哪种错误,不会影响后面的代码段的执行。
编译错误时,当前代码段会停止,代码中所有声明全部无效。
运行错误时,前面的代码已经执行完毕,不会影响该代码段内前面的内容。
以上是关于JS中script词法分析的主要内容,如果未能解决你的问题,请参考以下文章
学习javaScript必知必会~js词法分析介绍一下主流的浏览器的开发者工具(js调试和查看网络请求)