浅谈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 学习笔记(六)
Dec 31 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
Mar 21 Javascript
非html5实现js版弹球游戏示例代码
Sep 22 Javascript
JavaScript window.location对象
Nov 14 Javascript
js实现Select下拉框具有输入功能的方法
Feb 06 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
JavaScript:Array类型全面解析
May 19 Javascript
js判断某个字符出现的次数的简单实例
Jun 03 Javascript
正则 js分转元带千分符号详解
Mar 08 Javascript
微信小程序之滚动视图容器的实现方法
Sep 26 Javascript
JS获取input[file]的值并显示在页面的实现方法
Mar 09 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 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/06/29 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
HTML代码中标签的全部属性 中文注释说明
2009/03/26 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
Nodejs实战心得之eventproxy模块控制并发
2015/10/27 NodeJs
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
python的urllib模块显示下载进度示例
2014/01/17 Python
python中from module import * 的一个坑
2014/07/20 Python
python绘制热力图heatmap
2020/03/23 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
厨房工作人员岗位职责
2013/11/15 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
完美的中文自荐信
2014/05/24 职场文书
平安家庭示范户事迹
2014/06/02 职场文书
运动会拉拉队口号
2014/06/09 职场文书
大学生个人求职信例文
2014/07/07 职场文书
自强自立美德少年事迹材料
2014/08/16 职场文书
张思德观后感
2015/06/09 职场文书
浅谈Python中的正则表达式
2021/06/28 Python
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技