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代码格式化和语法着色V2
Oct 14 Javascript
Firebug 字幕文件JSON地址获取代码
Oct 28 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JavaScript中对象property的删除方法介绍
Dec 30 Javascript
简述AngularJS的控制器的使用
Jun 16 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
js实现常用排序算法
Aug 09 Javascript
jQuery+ajax实现局部刷新的两种方法
Jun 08 jQuery
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
Nov 23 Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
IE和Firefox下event事件杂谈
2009/12/18 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
js学习阶段总结(必看篇)
2016/06/16 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
2016/09/13 Javascript
详解Javascript几种跨域方式总结
2017/02/27 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
荐书|您有一份JavaScript书单待签收
2017/07/21 Javascript
node.js基础知识小结
2018/02/26 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python入门篇之字符串
2014/10/17 Python
python实现简单购物商城
2016/05/21 Python
判断网页编码的方法python版
2016/08/12 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
python如何发布自已pip项目的方法步骤
2018/10/09 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
python 6种方法实现单例模式
2020/12/15 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
车间工艺员岗位职责
2013/12/09 职场文书
英语演讲稿范文
2014/01/03 职场文书
活动策划邀请函
2014/02/06 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python
python数字图像处理之图像的批量处理
2022/06/28 Python
源码安装apache脚本部署过程详解
2022/09/23 Servers