浅谈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 应用技巧集合[推荐]
Aug 30 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
Feb 03 Javascript
js性能优化 如何更快速加载你的JavaScript页面
Mar 17 Javascript
弹出最简单的模式化遮罩层的js代码
Dec 04 Javascript
jquery ajaxSubmit 异步提交的简单实现
Feb 28 Javascript
Express作者TJ告别Node.js奔向Go
Jul 14 Javascript
基于jQuery实现仿微博发布框字数提示
Jul 27 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
浅谈JS函数节流防抖
Oct 18 Javascript
React Native自定义控件底部抽屉菜单的示例
Feb 08 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
Jan 19 Javascript
js实现文字头像的生成代码
Mar 07 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 时间设定)使用入门代码
2008/06/05 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
Bootstrap每天必学之滚动监听
2016/03/16 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
python控制台英汉汉英电子词典
2020/04/23 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
详解Python之unittest单元测试代码
2018/01/24 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
python读取与处理netcdf数据方式
2020/02/14 Python
Python自定义聚合函数merge与transform区别详解
2020/05/26 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
即兴演讲稿
2014/01/04 职场文书
幼儿园老师辞职信
2014/01/20 职场文书
一年级数学教学反思
2014/02/01 职场文书
初中语文教学反思
2014/02/02 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
文明上网主题班会
2015/08/14 职场文书
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
关于vue-router-link选择样式设置
2022/04/30 Vue.js
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers