一、函数定义:
等同于java中的方法,函数是一段可以被重复利用的代码片段
函数一般都是可以完成某个特定功能的。
二、语法格式:
- 第一种方式:
function 函数名 (形参列表){
函数体;
}
- 第二种方式:
函数名 = function(形式参数列表){
函数体;
}
- 注意:
函数必须调用才能执行。
形参可以传任意类型数据。
如果函数同名的话,后面的函数会将前面函数覆盖。
三、函数参数:
- 参数列表可选,不指定类型,传递时可接受任意类型数据,调用时如实参未指定,默认值为undefined。
- JavaScript为每个(非箭头)函数提供了一个arguments参数,调用函数时提供的实参都会存在arguments对象中。
- arguments对象类似数组,可用
arguments[index]
访问元素,使用arguments.length
获得实参个数。 arguments.callee
属性返回arguments所属的当前正在执行的函数。
四、函数提升:
- 函数声明存在提升:函数声明在任何函数之外,则函数的作用域会提升到整个代码的最高处(全局函数);在函数体内声明的函数,其作用域会被提升至所在函数。
- 注意:使用函数表达式定义的函数不存在函数提升。
五、箭头函数:
- ES6新特性,比函数表达式更加简洁,但是不绑定this、arguments、super。
- 语法格式:
=(参数1, 参数2, …, 参数N) => { 函数体内容; }
window.onload = function(){
this//指向window对象
}
等价于:
window.onload = () => {
this//报错,箭头函数不绑定this,但可以绑定外层非箭头函数对象
}