函数
函数就是语句的封装,可以让这些代码方便地被复用
函数具有“一次定义,多次调用”的优点。使用函数可以简化代码,让代码更具有可读性。
和变量类似,函数必须先定义然后才能使用
1.使用function关键字定义函数
function fun(){
//函数语句
}
function表示定义函数
fun表示函数名,函数名必须符合JS标识符命名规则
圆括号中是形参列表,即使没有形参,也必须书写圆括号。
大括号中就是函数体语句
2.函数表达式
var fun=function(){
//函数体语句
}
function()指匿名函数
函数的调用:执行函数体中的所有语句,就称为“调用函数”。
调用函数只需要在函数名称后书写圆括号对即可。
fun()
语句执行顺序
函数不调用,内部语句就不会执行;调用了函数,调用权就移交给函数;函数体内所有语句执行完毕,将语句执行权交还给主程序
函数声明的提升
和变量声明提升类似,函数声明也可以在预解析阶段被提升
注:函数表达式不能提升
函数优先提升
函数优先提升,变量声明提升,无法覆盖提升的函数;但函数之后不会覆盖回来
fun();//弹出B
var fun = function () {
alert('A')
}
function fun() {
alert('B')
}
fun()//弹出A
函数的参数:参数是函数内的一些待定值,在调用函数时,必须传入这些参数的具体值。函数的参数可多可少,函数可以没有参数,也可以有多个参数,多个参数之间需要用逗号隔开
function add(a,b) {
var sum=a+b;
console.log('两个数字的和是'+sum);
}
add(3,5);
圆括号中定义“形式参数”;调用函数时传入“实际参数”——“形实结合”
形参和实参个数不同的情况:
实参多于形参,会有实参没有形参接收;
形参多于实参,形参没有收到实参,值为undefined
函数内arguments表示它接收到的实参列表,它是一个类数组对象
类数组对象:所有属性均为从0开始的自然数序列,并且有length属性,和数组类似可以用方括号书写下标访问对象的某个属性值,但是不能调用数组的方法
function fun(){
console.log(arguments); //[33, 34, 35]
console.log(arguments[0]); //33
}
fun(33,34,35