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实现杯子倒水问题自动求解程序
Mar 25 Javascript
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
Js中的onblur和onfocus事件应用介绍
Aug 27 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
Mar 18 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
jquery移除了live()、die(),新版事件绑定on()、off()的方法
Oct 26 Javascript
js中的DOM模拟购物车功能
Mar 22 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
Oct 24 Javascript
vue.js中npm安装教程图解
Apr 10 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
Vue 根据条件判断van-tab的显示方式
Aug 03 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中MVC的开发经验分享
2012/05/17 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
9个比较实用的php代码片段
2016/03/15 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript 事件参考手册
2008/12/24 Javascript
javascript操作css属性
2013/12/30 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
wxPython的安装与使用教程
2018/08/31 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
如何写python的配置文件
2020/06/07 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
班组长安全生产职责
2013/12/16 职场文书
小学生开学感言
2014/02/28 职场文书
会计专业导师推荐信
2014/03/08 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
人事专员岗位说明书
2014/07/29 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
2015中秋祝酒词
2015/08/12 职场文书
python实现的web监控系统
2021/04/27 Python