浅谈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 利用StringBuffer类提升+=拼接字符串效率
Nov 24 Javascript
用js实现的自定义的对话框的实现代码
Mar 21 Javascript
javascript实现的DES加密示例
Oct 30 Javascript
JavaScript中的console.dir()函数介绍
Dec 29 Javascript
JavaScript验证Email(3种方法)
Sep 21 Javascript
form表单转Json提交的方法(推荐)
Sep 23 Javascript
node.js学习之base64编码解码
Oct 21 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
Apr 13 jQuery
12条写出高质量JS代码的方法
Jan 07 Javascript
Vue 框架之键盘事件、健值修饰符、双向数据绑定
Nov 14 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 Javascript
Vue实现简单的跑马灯
May 25 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中使用sleep造成mysql读取失败的案例和解决方法
2014/08/21 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
浅谈javascript 面向对象编程
2009/10/28 Javascript
javascript iframe编程相关代码
2009/12/28 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
jQuery仿Excel表格编辑功能的实现代码
2013/05/01 Javascript
angularjs 处理多个异步请求方法汇总
2015/01/06 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
bootstrap选项卡使用方法解析
2017/01/11 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
小程序云开发之用户注册登录
2019/05/18 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
js实现幻灯片轮播图
2020/08/14 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
python双向链表实现实例代码
2013/11/21 Python
深入理解Javascript中的this关键字
2015/03/27 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
django 中的聚合函数,分组函数,F 查询,Q查询
2019/07/25 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
主题婚礼策划方案
2014/02/10 职场文书
党员组织关系介绍信
2014/02/13 职场文书
培训研修方案
2014/06/06 职场文书
法人代表证明书范本
2015/06/18 职场文书
2016中秋节问候语
2015/11/11 职场文书