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 25 Javascript
js如何实现淡入淡出效果
Nov 18 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
Apr 01 Javascript
Javascript实现苹果悬浮虚拟按钮
Apr 10 Javascript
第五章之BootStrap 栅格系统
Apr 25 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 Javascript
jQuery继承extend用法详解
Oct 10 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
微信小程序实战之运维小项目
Jan 17 Javascript
利用JS实现简单的瀑布流加载图片效果
Apr 22 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
浅谈JavaScript 声明提升
Sep 14 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 中的str_replace 函数总结
2007/04/27 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
利用Laravel生成Gravatar头像地址的优雅方法
2017/12/30 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
由document.body和document.documentElement想到的
2009/04/13 Javascript
jquery tab标签页的制作
2010/05/10 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
JavaScript使用循环和分割来替换和删除元素实例
2014/10/13 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
python hough变换检测直线的实现方法
2019/07/12 Python
python英语单词测试小程序代码实例
2019/09/09 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
二年级小学生评语
2014/04/21 职场文书
需求分析说明书
2014/05/09 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
运动会通讯稿200字
2015/07/20 职场文书
2016年公司中秋节致辞
2015/11/26 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang