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