函数的五种声明方式
1.具名函数1
2
3function x(input1,input2){
return undefined
}
2.匿名函数1
2
3
4
5var x = function (input1, input2){
return undefined
}
x.name // 'x'
3.具名函数赋值1
2
3
4
5var x = function y(input1, input2){
return undefined
}
x.name // 'y'
4window.Function
1 | var x = new Function('x','y','return x+y') |
5箭头函数
1 | f= (x,y)=>{return x+y} |
js不一致性
1 | function y(){} |
1 | var x = function y(){} |
常见考点
作用域
1 | var a = 1 |
log结果是1
1 | var a = 1 |
变量提升
1 | function f(){ |
这里涉及到变量提升,变量提升后的代码是这样的1
2
3
4
5
6
7function f(){
var a
console.log(a)
a = 2
}
f.call() // a是undefined
闭包
1 | function sum(a){ |
闭包就是一个函数能引用到它作用域外的变量
这里 函数 o 依然可以引用到 8