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实现的所谓的滑动门
May 23 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
Nov 22 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
Sep 09 Javascript
60行js代码实现俄罗斯方块
Mar 31 Javascript
JavaScript Array对象详解
Mar 01 Javascript
JS完成画圆圈的小球
Mar 07 Javascript
Bootstrap布局之栅格系统学习笔记
May 04 Javascript
浅谈vuepress 踩坑记
Apr 18 Javascript
javascript系统时间设置操作示例
Jun 17 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
Apr 10 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开发中的中文编码问题
2013/08/08 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php简单获取复选框值的方法
2016/05/11 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
jquery下checked取值问题的解决方法
2012/08/09 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
深入分析Cookie的安全性问题
2015/03/01 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
微信小程序转化为uni-app项目的方法示例
2020/05/22 Javascript
python实现的重启关机程序实例
2014/08/21 Python
Python获取邮件地址的方法
2015/07/10 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
python logging设置level失败的解决方法
2020/02/19 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
优秀党员主要事迹
2014/01/19 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
销售人员求职信
2014/07/22 职场文书
违章停车检讨书
2014/10/21 职场文书
晚会闭幕词
2015/01/28 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python