1.建立函数数组
有两种方式函数声明和函数表达式
function b{} 这是函数声明,会被预编译提高到做用域最顶端。
var m = function b(){} 这是函数表达式,不会被提高。
复制代码
2.函数形参与实参的参数传递函数
var m=1;
function b(a ){};
b(m); 其中m是实参,在调用函数时实参传递进函数,a是形参,是函数声明时定义的。形参的生命周期只存在于函数内。
复制代码
此时实参是基本数据类型,被传递到函数f里的形参a里,此时的堆栈是这样的。
复制代码
可是要注意,若是实参是引用函数类型,数组,就会变得不同了。
复制代码
a[0]改变的是堆里的值,会致使实参里的数据也改变,固然若是是a=[1,2]就不会发生变化。
复制代码
3.函数的形参也能够是一个函数。spa
4.函数返回值3d
函数的返回值默认为underfine,若是想要返回多个值,能够在函数里建立一个数组,将要返回的值都保存在数组里,而后将数组返回。
复制代码
argumentscode
arguments是函数内部的属性,只能在函数内部使用,它的做用是收集函数内实参的数据。 只要调用函数,函数内部就会自动生成一个arguments,它虽然像一个数组,可是它并非一个数组,咱们能够像用数组同样使用它。cdn