浅谈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 相关文章推荐
IE8 chrome中table隔行换色解决办法
Jul 09 Javascript
javascript按位非运算符的使用方法
Nov 14 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 Javascript
JS 对象(Object)和字符串(String)互转方法
May 20 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
Aug 22 Javascript
jquery分页优化操作实例分析
Aug 23 jQuery
vue+axios实现post文件下载
Sep 25 Javascript
js 图片懒加载的实现
Oct 21 Javascript
JS封装cavans多种滤镜组件
Feb 15 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与XML的PDF文档生成技术
2006/10/09 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
浅析javascript中函数声明和函数表达式的区别
2015/02/15 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
JS之相等操作符详解
2016/09/13 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
详解如何运行vue项目
2019/04/15 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
2019/11/12 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
详解Python中的日志模块logging
2015/06/19 Python
Python查询IP地址归属完整代码
2017/06/21 Python
Python文件操作基本流程代码实例
2017/12/11 Python
TensorFlow变量管理详解
2018/03/10 Python
Python Pandas 如何shuffle(打乱)数据
2019/07/30 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
python对一个数向上取整的实例方法
2020/06/18 Python
Ibatis的核心配置文件都有什么
2014/09/08 面试题
关键字final的用法
2013/10/02 面试题
2014教师年度思想工作总结
2014/11/10 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js