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中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
javascript中in运算符用法分析
Apr 28 Javascript
从0开始学Vue
Oct 27 Javascript
JavaScript定时器实现的原理分析
Dec 06 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
JS库 Highlightjs 添加代码行号的实现代码
Sep 13 Javascript
vuex中使用对象展开运算符的示例
Sep 25 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
详解Vue单元测试case写法
May 24 Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 Javascript
前端开发基础javaScript的六大作用
Aug 06 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使用正则过滤js脚本代码实例
2014/05/10 PHP
js身份证判断方法支持15位和18位
2014/03/18 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
ES6箭头函数和扩展实例分析
2020/05/23 Javascript
js实现批量删除功能
2020/08/27 Javascript
vue开发chrome插件,实现获取界面数据和保存到数据库功能
2020/12/01 Vue.js
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
win7 下搭建sublime的python开发环境的配置方法
2014/06/18 Python
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python实现多行注释的另类方法
2014/08/22 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
python3.5的包存放的具体路径
2020/08/16 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
流行文化收藏品:Sideshow(DC漫画,星球大战,漫威)
2019/03/17 全球购物
校园广播稿500字
2014/02/04 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
男方婚前保证书
2015/02/28 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
Flask response响应的具体使用
2021/07/15 Python