浅谈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+CSS 半开折叠效果原理及代码(自写)
Mar 04 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
Mar 19 Javascript
文本框水印提示效果的简单实现代码
Feb 22 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
Sep 08 Javascript
JS中parseInt()和map()用法分析
Dec 16 Javascript
jQuery实现简单弹窗遮罩效果
Feb 27 Javascript
Vue.js中兄弟组件之间互相传值实例
Jun 01 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
Apr 17 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
May 05 Javascript
VUE动态生成word的实现
Jul 26 Javascript
解决element-ui里的下拉多选框 el-select 时,默认值不可删除问题
Aug 14 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
fgetcvs在linux的问题
2012/01/15 PHP
ThinkPHP实现登录退出功能
2017/06/29 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
AngularJS入门教程之学习环境搭建
2014/12/06 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
通用javascript代码判断版本号是否在版本范围之间
2015/11/29 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
纯JS前端实现分页代码
2016/06/21 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
js实现select下拉框选择
2020/01/11 Javascript
python基于twisted框架编写简单聊天室
2018/01/02 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python提取log文件内容并画出图表
2019/07/08 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
2019/12/11 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
CSS3 实现的缩略图悬停效果
2020/12/09 HTML / CSS
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
法人代表授权委托书
2014/04/08 职场文书
最美乡村医生事迹材料
2014/06/02 职场文书
网络营销计划书
2015/01/17 职场文书
投标售后服务承诺书
2015/04/29 职场文书