函数的使用可以减少大量重复的代码,封装好一个函数之后,可以在后面多处去调用,有时候使用别人封装好的函数,都不需要去了解该功能是如何实现,只需要知道函数是如何使用的即可,非常之方便。
语法
1,关键词 : function
2,函数名称 : 符合变量的命名规范
3,函数的参数 : 函数的执行数据
4,函数的程序 : 封装在函数{}中的程序内容
5,函数的返回值 : return 定义函数的返回值,并且会终止之后函数程序的执行
函数的封装方式
1,声明式
function fun(){ }
2,匿名式,赋值式
var fun1 = function(){}
函数的存储
基本数据类型和复杂数据类型,在定义和存储数据时的区别
基本数据类型 : 布尔 数值 字符串 undefined null
复杂数据类型 : 对象 数组 函数
在计算机存储数据的过程中,将变量,存储在内存当中,
在内存中计算机程序执行是,将内存中的存储空间虚拟的分成了两个部分
栈 和 堆 两个部分 来存储数据
基本数据类型,都存储在 栈 当中
复杂数据类型,都存储在 堆 当中
var a = 100;
这是在定义一个基本数据类型
a = 100 存储在 栈 中
变量名称 a 中 存储的就是 数值100
调用变量a,就是调用其中存储的数据100
var b = function (){}
这是在定义一个复杂数据类型
function(){} 函数存储在 堆 当中,并且计算机操作系统,给这个函数定义了一个 内存地址 例如 0f0
b 这个变量 存储在 栈 当中
b 这个变量 存储的是 函数的内存地址 0f0
调用变量b , 实际上是调用 0f0 这个地址 , 找到地址对应的函数 , 调用函数中的程序
无参无返回值函数
封装
function fun(){
//无return返回值
}
调用
fun(); //不需要传参,也没有返回值
有参无返回值函数
封装
function add(num1,num2){ //求和函数,没进行容错处理
console.log(num1+num2); //打印求和结果
//无return返回值
}
调用
fun(12,13); //需要传入两个整数,没有返回值
有参有返回值函数
封装
function add(num1,num2){ //求和函数,没进行容错处理
return num1+num2;
}
调用
var res = fun(12,13); //需要传入两个整数,还需要声明变量接收返回值
conso.log(res)
函数封装细节
1,考虑容错机制
函数的执行,对于参数是要有要求的,如果参数出现问题
要么终止程序的执行,要么对参数进行处理
方式1: 使用return来终止函数的执行
在switch判断和循环语句中,可以使用break来终止程序
在函数中药终止函数的执行,不能使用break
需要使用return关键词;
方式2: 对数据进行调整
2,考虑函数参数的默认值
有时候一个函数需要传入两个参数,但是使用时之传了一个参数,那另一个就会以默认值的形式存在,会影响最终结果。
3,给函数定义函数说明
代码规范中规定,所有的自定义函数,都要写函数说明
每个公司对于函数说明的语法规范都不相同,我们现在先了解一个基本格式
函数说明 param 参数的意思 是对参数的说明
一般写 参数的名称 数据类型 作用
return 返回值的意思 是对返回值的说明
return 返回值的名称 数据类型 作用
比如累加求和函数说明:
@param min int 累加求和的起始数值,默认值是1,整数类型
@param max int 累加求和的终止数值,整数类型
@return res int 累加求和的结果,整数类型