浅谈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 相关文章推荐
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
JS版微信6.0分享接口用法分析
Oct 13 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
Node.js学习入门
Jan 03 Javascript
vue中将网页打印成pdf实例代码
Jun 15 Javascript
bootstrap轮播模板使用方法详解
Nov 17 Javascript
windows下更新npm和node的方法
Nov 30 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 Javascript
React组件内事件传参实现tab切换的示例代码
Jul 04 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
跟混乱的页面弹窗说再见
Apr 11 Javascript
JS用最简单的方法实现四舍五入
Aug 27 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 一元分词算法
2009/11/30 PHP
那些年我们错过的魔术方法(Magic Methods)
2014/01/14 PHP
php生成随机颜色方法汇总
2014/12/03 PHP
PHP中的类型提示(type hinting)功能介绍
2015/07/01 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
JS处理一些简单计算题
2018/02/24 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
2018/05/04 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[03:03]2014DOTA2国际邀请赛 EG战队专访
2014/07/12 DOTA
[02:41]DOTA2亚洲邀请赛小组赛第三日 赛事回顾
2015/02/01 DOTA
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python实现一个函数版的名片管理系统过程解析
2019/08/27 Python
python装饰器使用实例详解
2019/12/14 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
CSS3实现酷炫的3D旋转透视效果
2019/11/21 HTML / CSS
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
英国领先的高街书籍专家:Waterstones
2018/02/01 全球购物
英国电器零售商:PRC Direct
2018/06/21 全球购物
乌克兰最大的家用电器和电子产品连锁店:Eldorado
2019/10/02 全球购物
后勤园长自我鉴定
2013/10/17 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
理解深度学习之深度学习简介
2021/04/14 Python