浅谈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 相关文章推荐
js 效率组装字符串 StringBuffer
Dec 23 Javascript
js不完美解决click和dblclick事件冲突问题
Jul 16 Javascript
javascript特殊用法示例介绍
Nov 29 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
jquery简单实现幻灯片的方法
Aug 03 Javascript
莱鸟介绍javascript onclick事件
Jan 06 Javascript
jQuery增加与删除table列的方法
Mar 01 Javascript
BootStrap 获得轮播中的索引和当前活动的焦点对象
May 11 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
Element-ui table中过滤条件变更表格内容的方法
Mar 02 Javascript
JavaScript执行环境及作用域链实例分析
Aug 01 Javascript
javascript+HTML5 canvas绘制时钟功能示例
May 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
获得Google PR值的PHP代码
2007/01/28 PHP
PHP 创建文件(文件夹)以及目录操作代码
2010/03/04 PHP
php不写闭合标签的好处
2014/03/04 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
Prototype RegExp对象 学习
2009/07/19 Javascript
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
2013/11/06 Javascript
js实现表格字段排序
2014/02/19 Javascript
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
微信小程序  简单实例(阅读器)的实例开发
2016/09/29 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
利用python爬取软考试题之ip自动代理
2017/03/28 Python
详解Python中类的定义与使用
2017/04/11 Python
使用python实现对元素的长截图功能
2019/11/14 Python
Python新手学习标准库模块命名
2020/05/29 Python
Python提取视频中图片的示例(按帧、按秒)
2020/10/22 Python
selenium如何定位span元素的实现
2021/01/13 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
幼儿园秋游活动方案
2014/01/21 职场文书
《落花生》教学反思
2014/02/25 职场文书
机关党员公开承诺书
2014/08/30 职场文书
公司出差管理制度范本
2015/08/05 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
如何正确理解python装饰器
2021/06/15 Python
vue使用element-ui按需引入
2022/05/20 Vue.js
PostgreSQL之连接失败的问题及解决
2023/05/08 PostgreSQL