浅谈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 使用手册(三)
Sep 23 Javascript
jQuery的animate函数学习记录
Aug 08 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
js实现数组冒泡排序、快速排序原理
Mar 08 Javascript
jQuery layui常用方法介绍
Jul 25 Javascript
Bootstrap实现input控件失去焦点时验证
Aug 04 Javascript
用自定义图片代替原生checkbox实现全选,删除以及提交的方法
Oct 18 Javascript
详解使用vue-admin-template的优化历程
May 20 Javascript
使用vue2.0创建的项目的步骤方法
Sep 25 Javascript
vue实现添加与删除图书功能
Oct 07 Javascript
浏览器事件循环与vue nextTicket的实现
Apr 16 Javascript
vue中使用vue-pdf的方法详解
Sep 05 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
php编程每天必学之表单验证
2016/03/01 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
Laravel实现表单提交
2017/05/07 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
javascript在事件监听方面的兼容性小结
2010/04/07 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
javascript面向对象之this关键词用法分析
2015/01/13 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
JS绘制微信小程序画布时钟
2016/12/24 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
vue+Java后端进行调试时解决跨域问题的方式
2017/10/19 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
利用Django模版生成树状结构实例代码
2019/05/19 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
Python解释器及PyCharm工具安装过程
2020/02/26 Python
Python实现汇率转换操作
2020/05/03 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
2015年度党员自我评价范文
2015/03/03 职场文书
美容院管理规章制度
2015/08/05 职场文书
一年级语文教学随笔
2015/08/14 职场文书
使用HttpSessionListener监听器实战
2022/03/17 Java/Android