一段代码看出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的的解析到执行的顺序规则相关推荐

  1. js修改html不成功,为什么这段代码中用js修改css样式中的display属性却不成功?

    getByClass() 这个方法写的有问题,你这个方法目的是获取className的元素数组. var s = getByClass('li');     但是你用的是 li,是tagName fu ...

  2. 干货 | 收藏!16段代码入门Python循环语句

    (图片付费下载于视觉中国) 作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门> 来源 | 大数据(ID:hzdashuju) [导读]本文将重点讲述 ...

  3. 值得收藏!16段代码入门Python循环语句

    来源:大数据 本文约6000字,建议阅读10分钟. 本文重点讲述for语句和while语句. [ 导读 ]本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除 ...

  4. python跳出两层for_干货 | 收藏!16段代码入门Python循环语句

    (图片付费下载于视觉中国)作者 | 李明江 张良均 周东平 张尚佳,本文摘编自<Python3智能数据分析快速入门>来源 | 大数据(ID:hzdashuju)[导读]本文将重点讲述for ...

  5. pythonfor循环语句例子_值得收藏!16段代码入门Python循环语句

    原标题:值得收藏!16段代码入门Python循环语句 导读:本文重点讲述for语句和while语句.for语句属于遍历循环,while语句属于当型循环.除了两个循环语句外,还介绍了break.cont ...

  6. 这是一段有毒的js代码,求大神解释!!!

    这是一段有毒的js代码,感兴趣的同学可以试一试,求大神解释!!! function lock() {while (true); } function nullFunction() {}alert(nu ...

  7. 实验一段有趣的js代码。

    代码如下: [...Array(7).keys()].map(days => new Date(Date.now() + 86400000 * days)); 演示解说: 这段代码的作用是返回未 ...

  8. 压缩过的js代码怎么还原_码农晒出一段代码:500行代码没有一字注释,这种情况怎么应对?...

    对于程序员经常提到的"代码",从某种程度上来讲就算是机器码,因为这个东西机器很擅长读,不论写的怎么乱,怎么压缩混淆,在机器看来都是一样的,而人就不一样了,哪怕是能力再强的程序员,代 ...

  9. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...

    反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足. while语句结构: while(判断条件) {循环语句} 使用whi ...

最新文章

  1. 规范化制度保障安擎高品质产品
  2. qDebug 的用法
  3. Js中的window.parent ,window.top,window.self 详解
  4. 使用时空-频率模式分析从脑电数据的一些试验中提取N400成分
  5. [Zabbix] 怎样实现邮件报警通知以及免费短信报警通知
  6. STM32 基础系列教程 35 - Lwip_sntp
  7. 初级PHP开发作品容易出现的几个不足
  8. linkedin爬虫_重新设计Linkedin的指导功能-用户体验案例研究
  9. WeStrom自定义设置修改快捷键
  10. Java 蓝桥杯 装箱问题
  11. 微信小程序登录授权开发
  12. ES的同义词、扩展词、停止词热更新方案
  13. 墨画子卿第一章第9节:指教
  14. 苹果IOS隐藏复制链接等按钮失效及报错the permission value is offline verifying解决办法
  15. 问:舵机可以作为智能小车的驱动轮吗
  16. 信息学奥赛一本通:1026:空格分隔输出
  17. 最新kali之nmap
  18. Android中设置分割线
  19. springcontext.xml 中方言是红色的_人文黄岩 魅力方言
  20. 母老虎:英国的那些女王们

热门文章

  1. 全球与中国抗生素软膏市场运营现状十四五及前景规划分析报告2021-2027年版
  2. 外国人工作证延期、办理外国人居留许可延期
  3. 创建透明窗口及其应用--屏幕画笔
  4. openresty开发系列19--lua的table操作
  5. RF内置库函数学习(一)
  6. [转]iOS5 ARC学习笔记:strong、weak等详解
  7. Android 2.3 API改变大全(转载)
  8. 开复学生网--没有学习的动力怎么办
  9. 一位 CEO 对 CTO 技术领导力的期待是什么?
  10. 【趋势】中国移动阅读市场AMC模型+实力矩阵+趋势预测