函数的5种声明
第一种声明
1
- function是关键字
-
console.log(x),x只能是字符串,如果不是字符串就调用x.toString()方法
2
函数与字符串区别有没有双引号
-
下面图片有console.log()原型
3
第二种声明
4
第三种声明
5
区别
6
-
解释上图
7 - 绿色是y的作用区域
第4种声明
8
- 答案是a n=1
第五种声明
9
用sum= (x,y)=>x+y不能有多句话和不能返回对象
10
总结
11
箭头函数没有名字
函数的属性name
12
13
如何调用函数
- 调用call
-
函数是一段可以反复调用的代码块
函数内存图
用纯对象构造函数
1 - 可以执行的代码的对象叫做函数
回顾
2
3
- 右边是真正用法(硬核)
this和arguments
1
2
3
-
普通模式下如果this是undefined,浏览器会把undefined改成window
4
回顾
5
arguments
6
- arguments是伪数组,proto没有指向Array.prototype
call stack 调用栈
7
8
总结过程
8
9
递归
9
stack overflow 还是一个解答网站哦
10
作用域
11
12
- 只要有函数就有作用域 就近原则找
- 变量提升 先找声明
- 看到代码声明提升
闭包
- 如果一个函数,使用了它范围外的变量,那么(这个函数+这个变量)就叫做闭包