这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文主要对 js 中 script 标签中的预解析进行详细介绍。具有一定的参考价值,下面跟着小编一起来看下吧
首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是 bug 经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数 (整个函数体) 提前到当前作用域的最顶端。
细节问题: 在多对的 script 标签中如果有相同的函数,那它们相互之间是不会受影响的,在第二对 script 标签中声明变量或者是创建函数,在第一对 script 标签中是无法访问到的,这就说明了,javaScript 的预解析只会在各自的 script 标签中发生,同时,第一对 script 标签中报错是不会影响到下面 script 标签中 js 代码的执行。但在第一对标签中声明的变量和函数是可以在第二对标签中获取到的。当然对于函数来说,预解析也只会将声明的变量及子级函数提升到当前函数的内部的最上面。
- <script>
- var numOne = 5;
- function num() {
- return 1;
- }
- console.log(num()); //1
- console.log(numOne); //5
- </script>
- <script>
- function num() {
- return 2;
- }
- console.log(num()); //2
- console.log(numOne); //5
- var numOne = 10;
- </script>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持 phperz!
(adsbygoogle = window.adsbygoogle || []).push({});
来源: http://www.phperz.com/article/17/0701/329007.html