Javascript之预编译
来源:互联网 发布:文化产业最新数据 编辑:程序博客网 时间:2024/06/05 06:03
Javascript的预编译与我们所说的编译是不相同的。
那么什么是JavaScript的“预编译”?
function lsl() { alert("li");};lsl(); //这里调用lsl,输出sulong而不是lifunction lsl() { alert("sulong");};lsl(); //这里调用lsl,当然输出sulong
JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地进行预编译后让后 再执行的。而且,在同一段程序中,函数 在被执行之前 会被预定义,后定定义的 同名函数 会覆盖 先定义的函数。在调用函数的时候,只会调用后一个预定义的函数(因为后一个预定义的函数把前一个预定义的函数覆盖了)。也就是说,在第一次调用lsl之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。
//第一段代码<script> function lsl() { alert("li"); }; lsl(); //li</script>//第二段代码<script> function lsl() { alert("sulong"); }; lsl(); //sulong</script>
一段代码中的定义式函数语句会优先执行,这似乎有点象静态语言的编译概念。所以,这一特征也被有些人称为:JavaScript的“预编译”
所以总结下:JS 解析器在执行语句前会将函数声明和变量定义进行"预编译",而这个"预编译",并非一个页面一个页面地"预编译",而是一段一段地预编译,所谓的段就是一 个 <script> 块。
0 0
- javascript之预编译
- Javascript之预编译
- JavaScript之预编译
- JavaScript面试之预编译与执行
- javascript预编译
- javascript预编译
- javaScript的预编译
- javascript 预编译
- JavaScript的预编译
- Javascript“预编译”理解
- C++之预编译
- JS之预编译
- javascript 预编译 作用域
- Javascript预编译和处理
- Javascript的"预编译"思考
- javascript预编译+例题分析
- JavaScript预编译原理分析
- javascript中的预编译问题
- Java学习基础:运算符和表达式(算数运算、关系运算、逻辑运算、位运算、条件运算、赋值运算)
- android-------用双缓存技术优化listview异步加载网络图片
- CentOS下安装LNMP环境
- Qt 操作字符串型的xml
- RMQ问题 (st+线段树)
- Javascript之预编译
- ORA-01031: insufficient privileges
- C语言求两个整数最大公约数和最小公倍数
- GDB+GdbServer: ARM程序调试
- POJ 2406 Power Strings
- Android自学笔记-5-click事件的四种写法
- 算法竞赛入门经典训练指南(1)
- Java常见面试题
- Hive Shell命令之一(数据库和表的操作)