javascript的函数方法-JavaScript函数的定义和基本用法_javascript方法

2024-04-22 0 3,576 百度已收录

1.用功能句定义

我们先举个例子。 该函数的作用是返回数组元素之和;

function sumArray(arr) {  
    var sum = 0;  
    for(var i = 0,aLength = arr.length;i < aLength;i++) {  
        sum += arr[i];  
    }  
    return sum;  
}  

关键字function 前面有一个空格。 sumArray 是函数的名称。 它的命名约定与变量名相同:只能包含字母、数字、下划线和欧元符号。 它不能以数字开头,也不能是关键字。

括号中的参数也称为形式参数,只需要参数名称。 参数可以是0个、1个或多个,用,分隔,函数体包含在{}中间。 包含一个或多个单词和句子。 函数体用于实现函数的功能。

关键字return旁边是函数的返回值,函数也可以没有返回值。 函数执行完毕后,“return”这句话就会退出执行,“return”下面的那句话将不再运行。 返回值是函数的输出。

使用这些方法定义的函数可以在函数定义之上或前面调用,只要该函数和调用该函数的语句位于同一源文件中。

2. 用表达式定义

以表达式的形式定义函数就是使用赋值表达式将函数参数赋给变量。 这显然是将函数视为变量。 此时,函数可以有名称,也可以没有名称。 没有名称的函数称为匿名函数。

有名字;

var funct = function getMax(a,b) {  
    return a>b?a:b;  
};//注意这后面的分号不能少,因为我们定义的是一个变量!   

与用函数语句定义不同,函数只能在函数定义语句之后调用,并且调用时只能使用变量名funct,不能使用函数名getMax,如:

var funct = function getMax(a,b) {  
    return a>b?a:b;  
};  
console.log(funct(1,2));//输出2  

匿名函数;

所谓匿名函数,就是紧跟在关键字函数后面的参数列表:

var funct = function(a,b) {  
    return a>b?a:b;  
};  

该函数没有名称。 它被赋予变量 funct 一个形式参数,因此称为匿名函数。 同样,这个函数也只能在这句话之后调用。

var funct = function(a,b) {  
    return a>b?a:b;  
};  
console.log(funct(1,2));//输出2  

摘要: 使用表达式定义函数可以立即使用。 一旦定义,函数只能在这句话之后调用。

3. 函数调用

在实际训练中,我们介绍了对象可以有自己的方法,当然这些也是函数。 该函数的调用与上面两层定义的函数略有不同。

//函数的定义:求三个数的最大值  
function max(a,b,c) {  
    if(a > b) {  
        if(a > c)  
            return a;  
        else   
            return c;  
    }  
    else {  
        if(b > c)  
            return b;  
        else   
            return c;  
    }  
}  
//调用该函数  
var result = max(1,2,3);//result为3  
console.log(result);//输出3  

调用函数时,需要传入与数组相同数量的具体值。 上面的函数有3个参数,所以调用下面的时候,传入了3个具体值,1传给参数a,2传给参数a。 参数b、3被传递给参数c。 函数的返回值通过形参符号=传递给变量result。 如果函数体中没有return关键字,则返回undefined。

调用对象中定义的函数:

var ob = {  
    id:1,  
    getMax:function(a,b) {  
        return a>b?a:b;  
    }  
};  
var result = ob.getMax(2,1);//result值为2  
var result1 = ob["getMax"](2,1);//result1的值也是2  

与上一篇不同的是,这里定位函数需要使用对象名.函数名或者对象名[“函数名”],其他都一样。

4. 未定义的形式参数

大多数编程语言都会检测调用函数时传入的形式参数的数量和类型,但 JavaScript 既不检测形式参数的类型,也不检测形式参数的数量。

JavaScript 中的形参会按照从左到右的顺序匹配数组,例如:

function myFunction(a,b,c) {  
    console.log(a);  
    console.log(b);  
    console.log(c);  
}  
myFunction(1,2,3);  

实参1传入数组a,实参2传入数组b,实参3传入数组c。 当形参的数量多于指定的值时,右侧的数组将传递值undefined。 喜欢:

function myFunction(a,b,c) {  
    console.log(a);  
    console.log(b);  
    console.log(c);  
}  
myFunction(1,2);  

实参1传入数组a,实参2传入数组b,undefined传入数组c。 如果只想向左侧参数传递数据,则可以将 undefined 传递给前几个形参。 喜欢:

function myFunction(a,b,c){  
console.log(a);  
console.log(b);  
console.log(c);  
}  
myFunction(undefined,1,2);  

上述两种做法都不够严谨。 最佳实践是为可能传递未定义值的数组设置默认值。 喜欢:

function getSum(a,b,c) {  
    if(c === undefined)   
        c = 0;  
    console.log(a+b+c);  
}  
myFunction(1,2);  

5.实参对象

JavaScript 中一切都是对象,实际参数也是对象。 有一个特殊的名称参数。 这个对象可以看成是一个字段(类字段javascript的函数方法,不是真正的字段)。 实参从左到右分别是arguments[0],arguments[1]...,arguments.length表示形参​​的个数。

//求参数的和  
function getSum() {  
    var aLength = arguments.length;  
    var sum = 0;  
    for(var i = 0;i < aLength;i++) {  
        sum += arguments[i];  
    }  
    return sum;  
}  
console.log(getSum(1,2,3,4,5))//输出15  

这里的数组直接省略,用arguments[i]表示。

6. 对象作为参数

复杂的函数一般有十多个参数。 虽然JavaScript不会检测参数的个数和类型,但是调用时形参的顺序不能乱。 开发者需要检测每个左值与数组的对应关系javascript的函数方法,效率非常低。 一个好的解决方案是使用对象作为参数,函数会根据对象的属性名称对参数进行操作。

function myFunction(obj) {  
    console.log(obj.name);  
    obj.number++;  
    return obj.number;  
}  
myObj = {name:"myObj",number:34};  
myFunction(myObj);//输出myObj  
console.log(myObj.number);//输出35  

7. 函数对象作为另一个函数的参数

一个函数(为了方便称为函数)可以作为另一个函数(称为b函数)的参数,而b函数最终可以返回一个特定的值。

原则上,函数b在自己的函数体中调用函数a,因此需要将函数a的名称作为实参传递给函数b。 如下:

//求最大值  
function getMax(a,b) {  
    return a>b?a:b;  
}  
//求最小值  
function getMin(a,b) {  
    return a<b?a:b;  
}  
//下面这个函数以函数作为参数,并最终返回一个值  
function getM(func,num1,num2) {  
    return func(num1,num2);  
}  
getM(getMax,1,2);//返回2  
getM(getMin,1,2);//返回1  

我们将函数a的名称(getMax或getMin)传递给函数b(getM()),然后在函数b内部调用传递的函数a来获取相关结果。

总结

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript的函数方法-JavaScript函数的定义和基本用法_javascript方法 https://www.wkzy.net/game/200611.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务