1. 什么是函数?
函数其实就是一个固定的功能或者程序段被封装的过程,实现一个固定的动能或者程序,这个封装体中需要一个人口和一个出口,人口就是参数,出口就是返回值。简单来说就是对一段代码进行封装,被封装的代码总是完成某项功能,函数不会主动的运行,需要在程序中手动的调用函数(比如:用户点击的时候),并且可以多次调用这个函数。
1.1 为什么要使用函数?
- 函数可以封装一个功能,该功能可以被多次使用从而达到代码重复使用。
- 函数就是代码的封装与代码复用的体现。
2. 函数的基本语法
2.1 定义语法
方式一:声明函数,必须使用函数名
function 函数名(自定义) {
执行的代码(函数体)
}
<!-- 通过函数的名字调用执行,如果先多次执行,那么就多次调用 -->
函数名();
方式二:函数表达式,函数名可选
var 变量 = function (name) {
执行的函数(函数体)
};
<!-- 函数其实也是一种数据类型,把函数赋值给一个变量是可行的,与let a=123这种赋值一样 -->
2.2 调用函数
函数封装(打包)了一段代码,被函数(打包)封装的代码不会自动运行,它需要我们在合适的时候调用这个函数。
调用函数:其实就是执行函数中封装的代码。
调用函数语法:函数名();
2.3 函数基本语法举例
3. 函数的参数
3.1 形参
就是在函数定义时出现在函数名的()内,可以接收值,在函数内使用。且形参会默认赋值为undefined****
function 函数名(形参1,形参2) {
执行的代码(函数体)
}
3.2 实参
调用函数时,可以在函数名后面的括号内填写实际参数,是一个实际的值,可以传递给形式参数,位置一一对应。也就是说在调用函数的()中放入的值,就叫实参。
函数名(实参1, 实参2);
3.3 参数举例
3.4 参数默认值
- ES5:默认值方式
- ES6:默认值方式
4. 函数的返回值
4.1 函数返回值语法
如果函数执行结果的数据需要被其他程序所使用,可以通过return关键字返回函数执行的结果。
function 函数名(形参1,形参2) {
执行的代码
return 执行代码的运算结果
}
4.2 返回值的举例
执行过程:将1赋值为num1, 2赋值给num2后在执行函数,并将结果返回到调用处 。
4.3 注意点
- 函数第一次遇到
return就结束执行,不管return后面还有多少代码都不执行。
- 如果函数没有指明
return,函数默认的返回值为undefined,否则以return返回值为准。
5. 函数定义的三部曲
分析思路:
从大局入手 => 根据需求分析语义 => 函数的名字add
从功能内部 => 未知数据是否参与运算 => 参数个数 num1,num2
从功能外部 => 是否需要功能使用后的结果 => 返回值 return;
function 函数名(参数1,参数2){
执行代码 (函数体)
return 返回值;
}
let result = 函数名(实参1, 实参2);
6. 变量作用域(了解)
6.1 什么是作用域 ?
变量作用域:是一个变量在哪个范围内可以使用,变量作用域被函数分为两种。
全局变量:函数外定义的变量,整个程序中都可以使用。
未被var定义的变量直接赋值,系统会默认为暗示全局变量。
局部变量:在某个特定的函数中定义的变量,称之为局部变量,只能够在函数内部使用。
全局变量的特殊形式:函数内定义但是没有加var,也被作为全局变量使用。
6.2 为什么要划分作用域 ?
由于函数的封装特性,产生独立的作用域,局部作用域变量用完即销毁,节省内存资源。
6.3 如何选择作用域
如果变量的数据只在函数内部使用,请使用局部变量。
如果变量的数据函数内部和外部都要使用,请使用全局变量。
7. 系统函数(重)
7.1 什么是系统函数 ?
在浏览器已经定义好的函数,我们无需定义直接使用即可。
7.2 常用的系统函数
String(值):将值转换为字符串Number(值):将值转换为数字类型Boolean(值):将非布尔类型值转为布尔类型0,null转换为false其余转换为trueparseInt(值):转为整数
该方法不能解析Infinity 和 -Infinity
只跟数字相关,不会像Number 一样将其他类型转化为数字类型。
console.log(parseInt(' 123'));// 123
console.log(parseInt(Infinity));// NaN
console.log(parseInt(-Infinity));// NaN
parseFloat(值):转为小数类型
parseFloat转为浮点类型
可以解析Infinity 和 -Infinity
toFixed方法主要用于处理小数,参数接收一个值,就是你要保留的小数位数。
isNaN(值):判定值如果不是数字返回为true是数字返回为fals e。(先通过Number隐式转换,然后再通过isNaN方法进行判断)
Number(value) ==> isNaN(value) ==> boolean