浅谈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的原型继承详解
Feb 15 Javascript
RequireJS 依赖关系的实例(推荐)
Jan 21 Javascript
JavaScript Base64 作为文件上传的实例代码解析
Feb 14 Javascript
Node.js中的http请求客户端示例(request client)
May 04 Javascript
分享ES6的7个实用技巧
Jan 18 Javascript
微信小程序当前时间时段选择器插件使用方法详解
Dec 28 Javascript
使vue实现jQuery调用的两种方法
May 12 jQuery
vue动态子组件的两种实现方式
Sep 01 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 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数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHP获取当前相对于域名目录的方法
2015/06/26 PHP
php基于jquery的ajax技术传递json数据简单实例
2016/04/15 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
PHP实现字符串的全排列详解
2019/04/24 PHP
Laravel 模型关联基础教程详解
2019/09/17 PHP
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
2016/01/12 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
2019/01/27 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
[02:33]DOTA2亚洲邀请赛趣味视频之吐真话筒
2018/03/31 DOTA
Python实现遍历windows所有窗口并输出窗口标题的方法
2015/03/13 Python
python简单线程和协程学习心得(分享)
2017/06/14 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
python能做哪方面的工作
2020/06/15 Python
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
为您搜罗全球潮流時尚品牌:HBX
2019/12/04 全球购物
欢迎横幅标语
2014/06/17 职场文书
政府会议通知范文
2015/04/15 职场文书
运动会通讯稿600字
2015/07/20 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis