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 幻灯片的实现
Dec 06 Javascript
javascript:void(0)的作用示例介绍
Oct 28 Javascript
js实现支持手机滑动切换的轮播图片效果实例
Apr 29 Javascript
js改变Iframe中Src的方法
May 05 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
js基于cookie记录来宾姓名的方法
Jul 19 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
Sep 10 Javascript
JS+HTML5实现获取手机验证码倒计时按钮
Aug 08 Javascript
微信小程序实现蒙版弹出窗功能
Sep 17 Javascript
JavaScript代码异常监控实现过程详解
Feb 17 Javascript
Nest.js环境变量配置与序列化详解
Feb 21 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
MayFish PHP的MVC架构的开发框架
2009/08/13 PHP
简单的PHP留言本实例代码
2010/05/09 PHP
php写的简易聊天室代码
2011/06/04 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
php检索或者复制远程文件的方法
2015/03/13 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
浅谈JS读取DOM对象(标签)的自定义属性
2016/11/21 Javascript
canvas实现钟表效果
2017/02/13 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
python清除字符串里非字母字符的方法
2015/07/02 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
在keras中model.fit_generator()和model.fit()的区别说明
2020/06/17 Python
django跳转页面传参的实现
2020/09/17 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
应届毕业生个人自我评价
2013/09/20 职场文书
大学教师年终总结的自我评价
2013/10/29 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
结婚堵门保证书
2015/05/08 职场文书
如何拟写通知正文?
2019/04/02 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
vue修饰符.capture和.self的区别
2022/04/22 Vue.js