js函数
1.什么是函数
函数是为了完成某一特定的功能,可以多次被调用执行的一段javascript语句的集合
2.定义函数
function 函数名(参数1,参数2,参数3...参数N){
//javascript语名
return返回值;
}
3.函数的组成
function:用于定义一个函数;
函数名:一个合法的标识符,不能是保留字或表达式
参数:可以有0个、1个或多个参数;
- 形参parameter:函数定义的时候在小括号里面定义的参数列表。用来接收实际参数。
- 实参argument:实际调用函数的时候传入的参数。
函数体:用大括号括起来的代码块,也是一个函数的主体一个函数要实现什么样的功能,是由函数体实现的
返回值:返回函数体的执行结果,如果没有返回值可以省略
4.表达式定义函数
var 函数名=function(参数1,参数2,参数3…参数N){
//javascript语名
return返回值;
}
5.调用函数
- 直接调用
function myPrint(str){
//这里的str就是形参parameter
console.log(str);
}
myPrint("hello world");
//函数调用时的helloworld就是实参argument
- 将函数值赋值给变量,或者数组元素
function mySum(a,b){
return a+b;
}
var myReslt=mySum(20,24);
6.函数的参数
传递参数注意事项
弱类型的js并不像ts那样在声明时即规定了参数类型,所以传递的参数类型与所需数据类型内容可能不符,导致结果不同预期,应在函数内应该做出判断。
function mySum(a,b){
return a+b;
}
var myReslt=mySum(20,'24');
//'2024'
传递的参数个数与函数定义的参数个数不一致,多余的将被忽略。
function mySum(a,b){
return a+b;
}
var myReslt=mySum(20,24,,36);
//'44'
7.函数的参数对象arguments
Javascript在函数中提供了一个argument对象,该对象可以获取从函数调用代码中传递过来的参数,并将这些参数存放在argument[]数组中。
argument.length 返回获取到的参数长度
argument[n] 返回第n个参数的值
function mysum(){
console.log(arguments);
console.log(arguments.length);
for(let n in arguments){
console.log(arguments[n])
}
}
mysum(20,22,35);
mysum(20);
mysum(20,35);
8.变量的作用域
变量可以根据其有效范围分为全局变量与局部变量两种
全局变量:从定义开始,到整个javascrip结束都可以使用
局部变量:在函数内使用var声明的变量,就是局部变量。作用域也就是在定义它的函数的内部
var a = 0;//这是一个全局变量;
function sum(){
k = 0;//在函数体内,未用var声明的变量为全局变量;
var k = 0;//在函数体内,用var声明的变量为局部变量
}
在开发过程中尽量避免全局变量的使用,一方面过多的全局变量将难以维护,另一方面若定义了过多的大对象,可能会导致内存溢出,导致程序崩溃;
这个就不示范了,有兴趣可以new几个array[10000]看看效果;
9.变量的优先级
1,如果函数体内定义了一个与全局变量一样的局部变量,那么该函数体内全局变量将不起作用,
2,局部变量在他定义体内都有效