JavaScript 预解析的4种实现方法解析


Posted in Javascript onSeptember 03, 2019

预解析:在当前作用域下,js运行之前,会把带有var和function关键字声明的变量先声明,并在内存中安排好。然后从上至下解析js语句。而且function的声明优先于var声明。

不多说,,直接上代码

正规写法:

var num=10;
  fun();
function fun(){
  console.log(num);//undefined
var num=20; }

预解析里:先将变量和函数提前,如下:

var num;
      function fun(){
        var num;
        console.log(num);//undefined
        num=20;        
      }
      num=10;
      fun();

第二种

var num=10;
       function dn(){
         console.log(num);//undefined
         var num=20;
         console.log(num);//20
       }
       dn();      
       //相当于以下代码
       var num;
       function dn(){
         var num;
         console.log(num);
         num =20;
         console.log(num );
       }
       num=10;
       dn();

第三种

var a =18;
       ss();
       function ss(){
         var b=9;
         console.log(a);//undefined
         console.log(b);//9
         var a='123';
       }       
       //相当于以下代码       
       var a;
       function ss(){
         var b;
         var a;
         b=9;
         
         console.log(a);
         console.log(b);
         a='123';
       }
       a=18;
       ss();

第四种

aa();
       console.log(c1);//9
       console.log(b1);//9
       console.log(a1);//报错       
       function aa(){
         var a1=b1=c1=9;
         console.log(a1);//9
         console.log(b1);//9
         console.log(c1);//9
       }       
       //相当于
       function aa(){
         var a1=b1=c1=9;//相当于 var a=9;b=9,c=9
         var a1;
         a1=b1=c1=9;
         
         console.log(a1);
         console.log(b1);
         console.log(c1)
       }
       aa();
       console.log(c1);
       console.log(b1);
       console.log(a1);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
你所要知道JS(DHTML)中的一些技巧
Jan 09 Javascript
javascript 二分法(数组array)
Apr 24 Javascript
JavaScript 开发规范要求(图文并茂)
Jun 11 Javascript
判断客户浏览器是否支持cookie的示例代码
Dec 23 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
JavaScript中的对象的extensible属性介绍
Dec 30 Javascript
javascript使用正则表达式实现去掉空格之后的字符
Feb 15 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
Sep 27 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
Sep 28 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
Sep 03 #jQuery
js tab栏切换代码实例解析
Sep 03 #Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 #Javascript
Node.js学习教程之Module模块
Sep 03 #Javascript
vue动态绘制四分之三圆环图效果
Sep 03 #Javascript
微信小程序拼接图片链接无底洞深入探究
Sep 03 #Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 #Javascript
You might like
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php实现算术验证码功能
2018/12/05 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
鼠标滚轮控制网页横向移动实现思路
2013/03/22 Javascript
JS+JSP checkBox 全选具体实现
2014/01/02 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
JS如何判断浏览器类型和详细区分IE各版本浏览器
2017/03/04 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
JS跳转手机站url的若干注意事项
2017/10/18 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
基于js实现的图片拖拽排序源码实例
2020/11/04 Javascript
[16:56]heroes英雄教学 司夜刺客
2014/09/18 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
Python过滤列表用法实例分析
2016/04/29 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python3使用GUI统计代码量
2019/09/18 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
python多线程和多进程关系详解
2020/12/14 Python
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
结婚典礼证婚词
2014/01/08 职场文书
信访工作者先进事迹
2014/01/17 职场文书
KTV的创业计划书范文
2014/02/02 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
违章停车检讨书
2014/10/21 职场文书
2014年班干部工作总结
2014/11/25 职场文书
唐山大地震的观后感
2015/06/05 职场文书
2015暑假假期总结
2015/07/13 职场文书
2015年工商局个人工作总结
2015/07/23 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书