普通函数、匿名函数、箭头函数、构造函数、立即执行函数
1、普通函数
普通函数又称具名函数,普通函数存在函数声明的提升
//例如:
//函数声明提升
fun([1,2,3]) //[1,2,3]
function fun(val){
console.log(val)
console.log(arguments)
}
//调用函数
fun([1,2,3]) //[1,2,3]
- 普通函数this最终指向调用它的对象,也就是说谁调用就指向谁。
- 没有被对象调用的函数默认指向windows
(函数没有调用时的this指向是无法确定的,也就是说普通函数的this在执行时确定的)
2、匿名函数
匿名函数存在变量提升,不存在函数声明提升
//匿名函数的定义:
//var 变量名 = 关键字 () {
// 函数体
// return xxx
//}
//匿名函数调用:
// 变量名()
//例如:
var b = function () {
console.log(arguments)
}
b() //
3、箭头函数
箭头函数,是ES6标准中新增的一种新的函数。箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments等。箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。