Chicken first or egg?
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?相关推荐
- 知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18
知乎: 如何评价阿里开源的企业级 Node.js 框架 egg? #18 搬自我在知乎的问答: https://www.zhihu.com/question/50526101/answer/14495 ...
- egg风格 什么意思_小小的“egg”,有你想象不到的秘密……
大家好!我是集才华与幽默于一身的"大力哥"! 上期关于"home"的知识有没有超级有趣?大力哥已经久久无法忘记了,文末作业的答案是"B"-- ...
- 学习egg.js,看这一篇就够了!
egg 介绍 egg 是什么? egg 是阿里出品的一款 node.js 后端 web 框架,基于 koa 封装,并做了一些约定. 为什么叫 egg ? egg 有孕育的含义,因为 egg 的定位是企 ...
- 声明式和命令式编程_命令式与声明式编程
声明式和命令式编程 At this point you've undoubtedly heard about imperative programming vs declarative program ...
- c语言字符串中的字符无效,字符串操作
字符串主要用于编程,字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的.字符串也有很多操作,在正文将对C语言.C++和java中对其操作进行介绍. 中文名 字符串操作 外文名 strin ...
- 用 Python 解决“鸡生蛋”问题
你好! 对 Python 来说,没有什么比鸡肉和鸡蛋更美味了.所以今天我们的 Python 决定解决一个古老的哲学问题:什么是第一个,先有鸡还是先有蛋.为了做到这一点,它决定创建两个类,然后执行一些建 ...
- 关于开源精神和抄袭问题
2019独角兽企业重金招聘Python工程师标准>>> 刚看了个老贴子,关于7Z压缩的.通常这种问题,都存在两吵嘴的现象. 一方说:代码员,抄袭不算抄,你知道就抄过来,需要改多少代码 ...
- javascript中操作字符串小结
最近几次参加前端实习生招聘的笔试,发现很多笔试题都会考到字符串的处理,比方说去哪儿网笔试题.淘宝的笔试题等.如果你经常参加笔试或者也是一个过来人,相信你也跟我一样,发现字符串的处理是前端招聘过程中最常 ...
- 【javascript】js处理字符串
javascript常用方法锦集: 处理字符串 在Javascript除了使用数组和对象 String.replace(regexp | replaceThis,replaceWith |callba ...
最新文章
- 负载均衡工具haproxy安装,配置,使用
- plt转pdf软件_无须转Word也能轻松编辑PDF的软件,它来了!
- JFFS2文件系统挂载过程优化的分析报告
- PHP中逻辑运算符的高效用法---和||
- java8 block_java8的CompletableFuture使用实例
- 【蓝桥杯单片机】DS1302时钟芯片+DS18B20单总线温度传感器(官方驱动源码改写)
- Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?
- MySQL 5.7 忘记密码
- 计算机研究生可以参加哪些比赛?
- 防止第二代身份证泄露隐私
- CISCO防火墙自动配置、备份脚本
- 《区块链技术指南》一
- 关于keystore 文件生成PK8+PEM文件
- SPSS T检测原理及结果分析
- 每日工作记录——W5500网口ping中出现的问题
- 大一新生计算机课word知识,大一计算机结业论文
- GNN学习笔记(三) Graph Neural Network概述
- 【cocos2d游戏开发实战】一款射击类小游戏《Zombie Age》的开发(一)
- 里氏代换原则 (Liskov Substitution Principle, LSP)
- DataGridView的属性、事件、方法
热门文章
- vs2012 MFC连接及操作access(2007)数据库(ADO)
- t460p加固态硬盘 thinkpad_不仅是硬件升级!ThinkPad T460p评测
- QQZone的需求介绍和数据库设计
- 我用20种编程语言送上新年的祝福,Happy new year!
- java erp_用Java如何实现ERP系统?
- 判断手机为Android还是ios
- 支付宝事件溯源:2005年“雅巴“交易再回首
- 儿科学类毕业论文文献有哪些?
- 蘑菇模拟器TV版 for Android,真实采集蘑菇模拟器
- php的注册头像上传,用Ajax实现注册与头像上传功能