js--函数
函数概述
函数实际就是多行代码的抽取(多行代码构成特定的功能)
函数的优点
- 减少冗余代码(同一个函数可以被多次调用,可以减少代码量)
- 函数封装(将特定的一些代码使用函数放在一起)
- 提高代码的可维护性及可阅读性
函数的分类
①系统函数:window里面的所有函数都属于系统函数(sonsole.log()、alert()、prompt()...)
②内置函数:所有的内置对象里面的函数都是内置函数(Math.pow())
③自定义函数(自己定义的函数)
注意:
1, 必须使用function关键字, 且为小写, 函数名可以自己给定
2, 函数名的命名规则和变量名一致
3, 函数名后必须写圆括号()
内置函数和系统函数更关注于他的使用,自定义函数(定义以及使用)
1.自定义函数的定义以及调用
1.1 使用function关键词定义匿名函数(没有名字的函数)
声明比较少,因为匿名函数不能复用,只能用一次,一般不传参数
function(形参(可以省略,也可以有很多个)){
函数体(代码)
}
//直接调用让事件调用(自己调用)
(function(){
console.log('匿名函数')
})()
1.2 使用function关键词定义具名函数(有名字函数)
实参:有实际值的参数,是调用的时候用,根据需要的参数个数来传递对应的参数个数,不一定要和形参里面的个数一样,没有的会显示undefined
形参:是形容的参数,用在定义函数时
2.预编译
①会声明对应的function和var关键词修饰的变量(开辟内存的操作)
②对应的function的内存空间开辟以后会将对应的代码块放在其中的等待调用
③var修饰的关键词只会开辟一个空间,并不会进行赋值(会先给其一个undefined的值)
④function和var会在预编译阶段声明,但是没有赋值,var最开始是undefined,要进行赋值后才有值
3.return 关键词
return返回对应的数据,在函数内进行数据返回(一旦调用了return后,会跳出,不会再执行后面的代码块)
4.作用域
局部作用域:只会向上找,或者在自己作用域找,找不到就报错
5.函数的arguments(参数数组 参数的集合)
是一个伪数组(有部分的数组特性)所有的函数都具备arguments(对象)
通过length对应的长度来访问传入的参数
6.函数的嵌套
函数内部可以再包含其他函数;
函数之间允许相互调用,也允许向外调用, 但是不可以调用同级函数的嵌套函数;