浅谈js script标签中的预解析


Posted in Javascript onDecember 30, 2016

首先介绍预解析,虽然预解析字面意思很好理解,但是却是出坑出的最多的地方,也是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>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery 学习之二 属性相关
Nov 23 Javascript
类似php的js数组的in_array函数自定义方法
Dec 27 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
Feb 06 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
JS实现前端缓存的方法
Sep 21 Javascript
使用javascript做在线算法编程
May 25 Javascript
微信小程序倒计时功能实例代码
Jul 17 Javascript
jQuery 筛选器简单操作示例
Oct 02 jQuery
JavaScript 对象创建的3种方法
Nov 17 Javascript
jQuery实现页面顶部下拉广告
Dec 30 #Javascript
jQuery Password Validation密码验证
Dec 30 #Javascript
JS编写函数实现对身份证号码最后一位的验证功能
Dec 29 #Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 #Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 #Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 #Javascript
Bootstrap3 内联单选和多选框
Dec 29 #Javascript
You might like
php中设置多级目录session的问题
2011/08/08 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
jQuery textarea的长度进行验证
2009/05/06 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
ES6中的箭头函数实例详解
2017/04/06 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
webpack4+react多页面架构的实现
2018/10/25 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
PyTorch上搭建简单神经网络实现回归和分类的示例
2018/04/28 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
Python csv模块使用方法代码实例
2019/08/29 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
python 子类调用父类的构造函数实例
2020/03/12 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
日本7net购物网:书籍、漫画、杂志、DVD、游戏邮购
2017/02/17 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
怎么写好自荐信
2013/10/30 职场文书
村居抓节水倡议书
2014/05/19 职场文书
毕业证明模板
2015/06/19 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Python常遇到的错误和异常
2021/11/02 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang