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实现侧悬浮浮动实例代码
Nov 29 Javascript
jquery如何判断表格同一列不同行input数据是否重复
May 14 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
jQuery中:first选择器用法实例
Dec 30 Javascript
jQuery遍历页面所有CheckBox查看是否被选中的方法
Apr 14 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
Bootstrap CSS使用方法
Dec 23 Javascript
原生JS轮播图插件
Feb 09 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
Mar 03 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
VUE使用axios调用后台API接口的方法
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截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
JQuery中Text方法用法实例分析
2015/05/18 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
2016/10/04 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
python使用super()出现错误解决办法
2017/08/14 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python如何实现数据的线性拟合
2019/07/19 Python
解决Django后台ManyToManyField显示成Object的问题
2019/08/09 Python
python双向链表原理与实现方法详解
2019/12/03 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
自考毕业生自我鉴定
2013/11/04 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
财政局长个人总结
2015/03/04 职场文书
成绩单家长意见
2015/06/03 职场文书
招商银行收入证明
2015/06/17 职场文书
新年寄语2016
2015/08/17 职场文书
总结Python连接CS2000的详细步骤
2021/06/23 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
httpclient调用远程接口的方法
2022/08/14 Java/Android