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真的不难-回顾一下基础知识
Jan 15 Javascript
jquery获取元素值的方法(常见的表单元素)
Nov 15 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
深入理解JQuery循环绑定事件
Jun 02 Javascript
js实现五星评价功能
Mar 08 Javascript
深入理解ES7的async/await的用法
Sep 09 Javascript
JS同步、异步、延迟加载的方法
May 05 Javascript
vue-cli中使用高德地图的方法示例
Mar 28 Javascript
微信小程序网络请求实现过程解析
Nov 06 Javascript
Java 生成随机字符的示例代码
Jan 13 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP 开发环境配置(Zend Server安装)
2010/04/28 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
分享27个jQuery 表单插件集合推荐
2011/04/25 Javascript
利用js实现在浏览器状态栏显示访问者在本页停留的时间
2013/12/29 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
详解javascript函数的参数
2015/11/10 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
详解vue.js之props传递参数
2017/12/12 Javascript
使用Vue构建可重用的分页组件
2018/03/26 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[55:42]VG vs VGJ.T 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
详细解读tornado协程(coroutine)原理
2018/01/15 Python
Python贪心算法实例小结
2018/04/22 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
python中numpy.empty()函数实例讲解
2021/02/05 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
单位门卫岗位职责
2013/12/20 职场文书
项目合作计划书
2014/01/09 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
地陪导游欢迎词
2015/01/26 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书