函数
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.函数的形参也可以是一个函数。
4.函数返回值
函数的返回值默认为underfine,如果想要返回多个值,可以在函数里创建一个数组,将要返回的值都保存在数组里,然后将数组返回。
-
arguments
arguments是函数内部的属性,只能在函数内部使用,它的作用是收集函数内实参的数据。 只要调用函数,函数内部就会自动生成一个arguments,它虽然像一个数组,但是它并不是一个数组,我们可以像用数组一样使用它。