一段代码看出JS的的解析到执行的顺序规则
一段代码看出JS的的解析到执行的顺序规则
代码
function bar(a, b) {b = 3;var b;function b(){}console.log(a); // 打印出:10console.log(b); // 打印出:3return function a(){};
}bar(10);
执行顺序
函数外面的时候,代码拆成前后两部分来看:
第 1 部分:(申明)
- 1、申明了一个
bar=undefined
的函数变量,用代码可以看成:(VO
是执行上下文,可以看成是this
)
VO = {bar:undefined}
第 2 部分:(执行)
- 2、执行
bar(10)
这里由于是函数,存在独立作用域,只要存在作用域就先解析,所以这里又可以拆成两部分来看:
第 2.1 部分:(申明)
- 先声明
a=10
,b=undefined
两个形参变量,再申明函数变量b=function b(){}
,由于上下文VO1
中已经存在b
了,所以会覆盖掉形参b
的申明,然后再申明var
变量b=undefined
,并覆盖已经存在VO1
中函数变量b
,用代码表示:
VO1 = {a:10,b:undefined}
注意:这里需要注意的是函数表达式return function a(){}
并不会提前申明,函数表达式
和函数申明
的异同是,除了标准的函数申明
:function a(){}
,其他的都是函数表达式
,如:var a = function (){}
、(function a(){})
...等。
注意:申明的权重:argument(函数的形参申明) > function声明 > var声明 (也就之前提高的变量提升Hoisting)
第 2.2 部分:(执行)
- 先执行
b=3
,再执行两个console.log,再执行:函数表达式申明,及执行。
一段代码看出JS的的解析到执行的顺序规则相关推荐
- js修改html不成功,为什么这段代码中用js修改css样式中的display属性却不成功?
getByClass() 这个方法写的有问题,你这个方法目的是获取className的元素数组. var s = getByClass('li'); 但是你用的是 li,是tagName fu ...
- 干货 | 收藏!16段代码入门Python循环语句
(图片付费下载于视觉中国) 作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门> 来源 | 大数据(ID:hzdashuju) [导读]本文将重点讲述 ...
- 值得收藏!16段代码入门Python循环语句
来源:大数据 本文约6000字,建议阅读10分钟. 本文重点讲述for语句和while语句. [ 导读 ]本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除 ...
- python跳出两层for_干货 | 收藏!16段代码入门Python循环语句
(图片付费下载于视觉中国)作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门>来源 | 大数据(ID:hzdashuju)[导读]本文将重点讲述for ...
- pythonfor循环语句例子_值得收藏!16段代码入门Python循环语句
原标题:值得收藏!16段代码入门Python循环语句 导读:本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除了两个循环语句外,还介绍了break.cont ...
- 这是一段有毒的js代码,求大神解释!!!
这是一段有毒的js代码,感兴趣的同学可以试一试,求大神解释!!! function lock() {while (true); } function nullFunction() {}alert(nu ...
- 实验一段有趣的js代码。
代码如下: [...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days)); 演示解说: 这段代码的作用是返回未 ...
- 压缩过的js代码怎么还原_码农晒出一段代码:500行代码没有一字注释,这种情况怎么应对?...
对于程序员经常提到的"代码",从某种程度上来讲就算是机器码,因为这个东西机器很擅长读,不论写的怎么乱,怎么压缩混淆,在机器看来都是一样的,而人就不一样了,哪怕是能力再强的程序员,代 ...
- JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足. while语句结构: while(判断条件) {循环语句} 使用whi ...
最新文章
- 规范化制度保障安擎高品质产品
- qDebug 的用法
- Js中的window.parent ,window.top,window.self 详解
- 使用时空-频率模式分析从脑电数据的一些试验中提取N400成分
- [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知
- STM32 基础系列教程 35 - Lwip_sntp
- 初级PHP开发作品容易出现的几个不足
- linkedin爬虫_重新设计Linkedin的指导功能-用户体验案例研究
- WeStrom自定义设置修改快捷键
- Java 蓝桥杯 装箱问题
- 微信小程序登录授权开发
- ES的同义词、扩展词、停止词热更新方案
- 墨画子卿第一章第9节:指教
- 苹果IOS隐藏复制链接等按钮失效及报错the permission value is offline verifying解决办法
- 问:舵机可以作为智能小车的驱动轮吗
- 信息学奥赛一本通:1026:空格分隔输出
- 最新kali之nmap
- Android中设置分割线
- springcontext.xml 中方言是红色的_人文黄岩 魅力方言
- 母老虎:英国的那些女王们