首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是bug经常会有的地方,利用好预解析的特性可以解决很多问题,并且提高代码的质量及数量,浏览器在解析代码前会把变量的声明和函数(整个函数体)提前到当前作用域的最顶端,函数的提升要比var变量的提升高,相同命名情况下,var会覆盖掉函数。

  细节问题:  在多对的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>

最新文章

  1. GO 基础(一)
  2. Codeforces Round #384 (Div. 2) //复习状压... 罚时爆炸 BOOM _DONE
  3. 各廠商ERP系統架構圖連結 (ERP流程圖)(轉)
  4. 原生js编写的安全色拾色器
  5. NineOldAndroid开源库简单使用demo
  6. Call Paralution Solver from Fortran
  7. centos 重启php-fpm
  8. jsp页面指令
  9. C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝
  10. c#判断网络连接状态示例代码
  11. Linux驱动修炼之道-RTC子系统框架与源码分析【转】
  12. Microsoft Toolkit 2.5下载 – 一键激活Windows 8.1/2012 R2/Office 2013
  13. sharepoint 2013 个人网站公共母板页路径地址
  14. Java重写round()方法
  15. Chapter 14_5 _ENV和load
  16. CentOS 6 NFS的安装配置
  17. Logstash 6.4.3 导入 csv 数据到 ElasticSearch 6.4.3
  18. Vector Math for 3D Computer Graphics (Bradley Kjell 著)
  19. concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
  20. php网页上传文件到Ubuntu服务器(input type=fire)- 赖大大

热门文章

  1. Vue.js 和 MVVM 小细节
  2. [APUE]UNIX进程的环境(上)
  3. html5标签canvas函数drawImage使用方法
  4. webpack+react+redux+es6开发模式
  5. 简单搭建 nuget 内部服务器
  6. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之集群概念介绍(一)
  7. 简记某WebGIS项目的优化之路
  8. C++随笔:.NET CoreCLR之GC探索(1)
  9. 餐饮连锁公司IT信息化解决方案一
  10. PHP 数组浅析