浅谈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的一个扩展form序列化到json对象
Dec 09 Javascript
改变隐藏的input中value的值代码
Dec 30 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
第一次接触神奇的Bootstrap表单
Jul 27 Javascript
微信小程序 UI与容器组件总结
Feb 21 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
Apr 14 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
纯js封装的ajax功能函数与用法示例
May 14 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
js删除数组中某几项的方法总结
Jan 16 Javascript
微信小程序引入Vant组件库过程解析
Aug 06 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 MySQL与分页效率
2008/06/04 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
2012/10/12 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
2014/06/16 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
2016/06/26 Javascript
HTML Table 空白单元格补全的简单实现
2016/10/13 Javascript
js css自定义分页效果
2017/02/24 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
win10下python3.8的PIL库安装过程
2020/06/08 Python
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
怎样自定义一个异常类
2016/09/27 面试题
劳动模范事迹材料
2014/01/19 职场文书
会计专业自我鉴定
2014/02/10 职场文书
2015年中个人总结范文
2015/03/10 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
《火烧云》教学反思
2016/02/23 职场文书
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
MySQL创建管理子分区
2022/04/13 MySQL
Python使用MapReduce进行简单的销售统计
2022/04/22 Python
利用Apache Common将java对象池化的问题
2022/06/16 Servers