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 相关文章推荐
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
jQuery获取上传文件的名称的正则表达式
May 21 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
js获取form表单所有数据的简单方法
Aug 18 Javascript
jQuery如何防止Ajax重复提交
Oct 14 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
Mar 04 Javascript
jQuery菜单实例(全选,反选,取消)
Aug 28 jQuery
通过封装scroll.js 获取滚动条的值
Jul 13 Javascript
vue中导出Excel表格的实现代码
Oct 18 Javascript
js实现简单商品筛选功能
Feb 02 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 include的妙用,实现路径加密
2008/07/29 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
2017/02/15 PHP
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
tab栏切换原理
2017/03/22 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
详解从vue-loader源码分析CSS Scoped的实现
2019/09/23 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python开发编码规范
2006/09/08 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Windows下Sqlmap环境安装教程详解
2020/08/04 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
英国男士时尚购物网站:Stuarts London
2017/10/22 全球购物
Tod’s英国官方网站:意大利奢华手工制作手袋和鞋履
2019/03/15 全球购物
中介公司区域经理岗位职责范本
2014/03/02 职场文书
大学信息公开实施方案
2014/03/09 职场文书
地道战观后感
2015/06/04 职场文书
任长霞观后感
2015/06/16 职场文书
企业年会祝酒词
2015/08/11 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android