一.函数的概念、作用、定义
1.概念
具有包裹性的最小的功能模块。
2.作用
业务角度:
a.提高开发效率
b.便于维护------->避免牵一发而动全身
代码角度:提高代码的复用性
3.定义
概念:函数功能的创建
语法:
function 函数名(参数列表){
函数体
}
function: 告知编译器该关键字后面的标识符为函数类型
函数名: 标识符命名规则(驼峰命名法)
参数列表:
如果函数需要从外部接收一些数值为自己所用,可以通过传参的方式获取外部变量的值
无参函数:函数名后面的小括号之间什么都不写
有参函数:该函数需要外界传递进来一些数据使用,这些数据统称为参数,每个参数本质就是一个变量,定义时直接写变量名,每个参数之间用逗号隔开
二.函数的调用
概念:函数的使用
1.无参函数的调用
函数名();
2.有参函数的调用
函数名(实参列表);
3.函数的嵌套调用
特点:
栈--->内存中的一种容器,其中一部分功能是专门用来处理函数嵌套调用
压栈: 保护现场 = 保存主调函数的入口地址 + 保存主调函数的内部变量及形参变量
弹栈: 恢复现场
目的:
了解函数嵌套调用时的执行顺序,被调函数执行完后,回到主调函数继续执行代码
三.函数的参数
形式参数:在函数定义时,函数名后面小括号的参数,也称为形参
实际参数:在函数调用时,函数名后面括号中的参数,也称为实参
1.值传递
特点:
当实参为内置基本类型时,只能由实参将数值传给形参,反之不行
注意事项:
形参在未被调用时,是没有内存的,
只有在调用时,形参(内部变量)才会开辟空间,
当函数调用执行结束后,形参的空间销毁
2.引用传递
当实参是引用类型时,数据双向传递,形参可以改变实参的值
//写一个函数 map(arr),如果该元素为数字,让每个元素增加30%
var arr =[1, 2, 3, 'haha',4, 5, 6]
function map(arr1) {
for (var i = 0; i < arr1.length; i++) {
if(typeof(arr1[i])=='number'){
arr1[i] = arr[i] * 1.3
}
}
}
map(arr);
console.log(arr);