函数的5种声明
第一种声明
![](https://img.haomeiwen.com/i15398122/72b7e2790dfb9ad0.png)
- function是关键字
-
console.log(x),x只能是字符串,如果不是字符串就调用x.toString()方法
2
函数与字符串区别有没有双引号
-
下面图片有console.log()原型
3
第二种声明
![](https://img.haomeiwen.com/i15398122/4ab91e94112438f8.png)
第三种声明
![](https://img.haomeiwen.com/i15398122/9a71e0b6bdfd5ea2.png)
区别
![](https://img.haomeiwen.com/i15398122/4d1389a277eea36a.png)
-
解释上图
7
- 绿色是y的作用区域
第4种声明
![](https://img.haomeiwen.com/i15398122/6e488e863d7abd7f.png)
- 答案是a n=1
第五种声明
![](https://img.haomeiwen.com/i15398122/4ae0c181650c7219.png)
用sum= (x,y)=>x+y不能有多句话和不能返回对象
![](https://img.haomeiwen.com/i15398122/1da915693c61658d.png)
总结
![](https://img.haomeiwen.com/i15398122/8a24f80c34e5e66c.png)
箭头函数没有名字
函数的属性name
![](https://img.haomeiwen.com/i15398122/ce99a66f99af4e43.png)
![](https://img.haomeiwen.com/i15398122/329be96872ea1f11.png)
如何调用函数
- 调用call
-
函数是一段可以反复调用的代码块
函数内存图
用纯对象构造函数
1
- 可以执行的代码的对象叫做函数
回顾
![](https://img.haomeiwen.com/i15398122/11d8296cbbc56d54.png)
![](https://img.haomeiwen.com/i15398122/52bbee3db28d82c6.png)
- 右边是真正用法(硬核)
this和arguments
![](https://img.haomeiwen.com/i15398122/44651087316cfeff.png)
![](https://img.haomeiwen.com/i15398122/3033df018a2f6275.png)
![](https://img.haomeiwen.com/i15398122/dff10145ca5b132d.png)
-
普通模式下如果this是undefined,浏览器会把undefined改成window
4
回顾
![](https://img.haomeiwen.com/i15398122/7aeec82dc45dfbc3.png)
arguments
![](https://img.haomeiwen.com/i15398122/fb9cc6a3eeb17ae1.png)
- arguments是伪数组,proto没有指向Array.prototype
call stack 调用栈
![](https://img.haomeiwen.com/i15398122/582b735ddefb1a1d.png)
![](https://img.haomeiwen.com/i15398122/e601219c46338bc4.png)
总结过程
![](https://img.haomeiwen.com/i15398122/e2fd5de15fe0069f.png)
![](https://img.haomeiwen.com/i15398122/22476725c473a025.png)
递归
![](https://img.haomeiwen.com/i15398122/776a3de0fdcf5acc.png)
stack overflow 还是一个解答网站哦
![](https://img.haomeiwen.com/i15398122/4c67076e669902f9.png)
作用域
![](https://img.haomeiwen.com/i15398122/4bd87f555a0a7721.png)
![](https://img.haomeiwen.com/i15398122/25818c6ad34cd764.png)
- 只要有函数就有作用域 就近原则找
- 变量提升 先找声明
- 看到代码声明提升
闭包
- 如果一个函数,使用了它范围外的变量,那么(这个函数+这个变量)就叫做闭包
网友评论