Let’s look at the following code:

<script>foo();//execute function foofunction foo(){console.log("execute function foo");}console.log(a);//undefined var a=1;
</script>

Can you see the difference?Why they lead to different results?
In fact,function and variable declaration executed during the compilation before runtime.
The code above will execute like this:

<script>function foo(){console.log("execute function foo");}var a;foo();//execute function fooconsole.log(a);//undefined a=1;
</script>

Each declaration will execute first in its own scope before run.

<script>foo();function foo(){console.log(a);//undefinedvar a=1;}
</script>

However,function expression does not work like function declaration.

<script>foo();//TypeError: foo is not a functionvar foo=function(){console.log("foo()");}
</script>

It likes

<script>foo();//TypeError: foo is not a functionvar foo;
</script>

Tips:If you write more than one same function,the behind covers the front.

<script>foo();//2function foo(){console.log("1");}function foo(){console.log("2");}
</script>

Q:fill in the blanks with the correct answers:

<script>var foo=function(){console.log("1");}foo();//①var foo=function(){console.log("2");}foo();//②
</script>
<script>function foo(){console.log("1");}foo();//③var foo=function(){console.log("2");}foo();//④function foo(){console.log("3");}foo();//⑤
</script>

A: [1,2,3,2,2].

Chicken first or egg?相关推荐

  1. 知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18

    知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18 搬自我在知乎的问答: https://www.zhihu.com/question/50526101/answer/14495 ...

  2. egg风格 什么意思_小小的“egg”,有你想象不到的秘密……

    大家好!我是集才华与幽默于一身的"大力哥"! 上期关于"home"的知识有没有超级有趣?大力哥已经久久无法忘记了,文末作业的答案是"B"-- ...

  3. 学习egg.js,看这一篇就够了!

    egg 介绍 egg 是什么? egg 是阿里出品的一款 node.js 后端 web 框架,基于 koa 封装,并做了一些约定. 为什么叫 egg ? egg 有孕育的含义,因为 egg 的定位是企 ...

  4. 声明式和命令式编程_命令式与声明式编程

    声明式和命令式编程 At this point you've undoubtedly heard about imperative programming vs declarative program ...

  5. c语言字符串中的字符无效,字符串操作

    字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的.字符串也有很多操作,在正文将对C语言.C++和java中对其操作进行介绍. 中文名 字符串操作 外文名 strin ...

  6. 用 Python 解决“鸡生蛋”问题

    你好! 对 Python 来说,没有什么比鸡肉和鸡蛋更美味了.所以今天我们的 Python 决定解决一个古老的哲学问题:什么是第一个,先有鸡还是先有蛋.为了做到这一点,它决定创建两个类,然后执行一些建 ...

  7. 关于开源精神和抄袭问题

    2019独角兽企业重金招聘Python工程师标准>>> 刚看了个老贴子,关于7Z压缩的.通常这种问题,都存在两吵嘴的现象. 一方说:代码员,抄袭不算抄,你知道就抄过来,需要改多少代码 ...

  8. javascript中操作字符串小结

    最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常 ...

  9. 【javascript】js处理字符串

    javascript常用方法锦集: 处理字符串 在Javascript除了使用数组和对象 String.replace(regexp | replaceThis,replaceWith |callba ...

最新文章

  1. 负载均衡工具haproxy安装,配置,使用
  2. plt转pdf软件_无须转Word也能轻松编辑PDF的软件,它来了!
  3. JFFS2文件系统挂载过程优化的分析报告
  4. PHP中逻辑运算符的高效用法---和||
  5. java8 block_java8的CompletableFuture使用实例
  6. 【蓝桥杯单片机】DS1302时钟芯片+DS18B20单总线温度传感器(官方驱动源码改写)
  7. Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?
  8. MySQL 5.7 忘记密码
  9. 计算机研究生可以参加哪些比赛?
  10. 防止第二代身份证泄露隐私
  11. CISCO防火墙自动配置、备份脚本
  12. 《区块链技术指南》一
  13. 关于keystore 文件生成PK8+PEM文件
  14. SPSS T检测原理及结果分析
  15. 每日工作记录——W5500网口ping中出现的问题
  16. 大一新生计算机课word知识,大一计算机结业论文
  17. GNN学习笔记(三) Graph Neural Network概述
  18. 【cocos2d游戏开发实战】一款射击类小游戏《Zombie Age》的开发(一)
  19. 里氏代换原则 (Liskov Substitution Principle, LSP)
  20. DataGridView的属性、事件、方法

热门文章

  1. vs2012 MFC连接及操作access(2007)数据库(ADO)
  2. t460p加固态硬盘 thinkpad_不仅是硬件升级!ThinkPad T460p评测
  3. QQZone的需求介绍和数据库设计
  4. 我用20种编程语言送上新年的祝福,Happy new year!
  5. java erp_用Java如何实现ERP系统?
  6. 判断手机为Android还是ios
  7. 支付宝事件溯源:2005年“雅巴“交易再回首
  8. 儿科学类毕业论文文献有哪些?
  9. 蘑菇模拟器TV版 for Android,真实采集蘑菇模拟器
  10. php的注册头像上传,用Ajax实现注册与头像上传功能