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 相关文章推荐
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
javascript格式化json显示实例分析
Apr 21 Javascript
js+html5实现canvas绘制简单矩形的方法
Jun 05 Javascript
详解Nuxt.js部署及踩过的坑
Aug 07 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
Aug 25 Javascript
js Math数学简单使用操作示例
Mar 13 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
vue配置多代理服务接口地址操作
Sep 08 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
Sep 21 Javascript
解决Antd Table组件表头不对齐的问题
Oct 27 Javascript
nginx配置域名后的二级目录访问不同项目的配置操作
Nov 06 Javascript
JS前端可视化canvas动画原理及其推导实现
Aug 05 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
Protoss兵种对照表
2020/03/14 星际争霸
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
javascript加号"+"的二义性说明
2013/03/04 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
js 毫秒转天时分秒的实例
2017/11/17 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
JS实现关闭小广告特效
2021/01/29 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
Lou & Grey美国官网:主打舒适性面料服饰
2017/12/21 全球购物
应聘美工求职信
2013/11/07 职场文书
幼儿园实习生辞职信
2014/01/20 职场文书
英文商务邀请信
2014/01/22 职场文书
清洁工岗位职责
2014/01/29 职场文书
2014年银行客户经理工作总结
2014/11/12 职场文书
研究生就业推荐表导师评语
2014/12/31 职场文书
学习党章心得体会2016
2016/01/15 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
python OpenCV学习笔记
2021/03/31 Python
golang slice元素去重操作
2021/04/30 Golang
muduo TcpServer模块源码分析
2022/04/26 Redis
JavaScript前端面试组合函数
2022/06/21 Javascript
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL