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 写类方式之六
Jul 05 Javascript
Javascript表达式中连续的 && 和 || 之赋值区别
Oct 17 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
js 立即调用的函数表达式如何写
Jan 12 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
js从数组中删除指定值(不是指定位置)的元素实现代码
Sep 13 Javascript
移动端使用localResizeIMG4压缩图片
Apr 22 Javascript
ElementUI Tag组件实现多标签生成的方法示例
Jul 08 Javascript
JS查找孩子节点简单示例
Jul 25 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
jQuery实现消息弹出框效果
Dec 10 jQuery
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基于工厂模式实现的计算器实例
2015/07/16 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
JavaScript中统计Textarea字数并提示还能输入的字符
2014/06/10 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
基于Bootstrap+jQuery.validate实现表单验证
2016/05/30 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
js轮播图代码分享
2016/07/14 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
Bootstrap Fileinput 4.4.7文件上传实例详解
2018/07/25 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
深入理解Python中各种方法的运作原理
2015/06/15 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
查看python下OpenCV版本的方法
2018/08/03 Python
使用tensorflow实现线性svm
2018/09/07 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python实现梯度下降法
2020/03/24 Python
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
总裁助理岗位职责
2014/02/17 职场文书
表决心的诗句大全
2014/03/11 职场文书
个人授权委托书格式
2014/08/30 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
高老头读书笔记
2015/06/30 职场文书
Echarts如何重新渲染实例详解
2022/05/30 Javascript