浅谈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 06 Javascript
详谈 Jquery Ajax异步处理Json数据.
Sep 09 Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 Javascript
JavaScript继承模式粗探
Jan 12 Javascript
使用JavaScript为Kindeditor自定义按钮增加Audio标签
Mar 18 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
JS 获取HTML标签内的子节点的方法
Sep 21 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
Sep 16 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
node运行js获得输出的三种方式示例详解
Jul 02 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
Jul 31 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数据库配置文件一般做法分享
2012/07/07 PHP
php生成圆角图片的方法
2015/04/07 PHP
PHP实现事件机制的方法
2015/07/10 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
Javascript Memoizer浅析
2014/10/16 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python内存映射文件读写方式
2020/04/24 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
Hotels.com越南:酒店预订
2019/10/29 全球购物
服装设计师职业生涯规划范文
2014/02/28 职场文书
就业推荐表自我鉴定范文
2014/03/21 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers