函数

函数

  函数可以看做是一个黑箱子,你给它丢入某个参数,它根据这个参数计算出相应的结果或者进行相应的操作。

  函数可以让我们重复的使用代码,比如我要吃西红柿炒蛋,那么我会对西红柿和蛋进行一顿比较复杂的操作,然后做出一道西红柿炒蛋。然后今天我又要吃西红柿炒蛋,那么我会重复上次的工作,然后做出西红柿炒蛋。现在假如我有一台西红柿炒蛋机,我把如何做西红柿炒蛋告诉它,然后我每次要吃西红柿炒蛋时,我只需要把西红柿和蛋放进去,这台机器就会为我做出西红柿炒蛋。函数就可以看做是上面的西红柿炒蛋机。

函数的定义

  函数的定义方式为

function 函数名(形参列表){
    函数体
    返回值(可选)
}

比如下面定义了一个将两个数相加的函数

function add(x,y){
    return x + y;
}

其中x,y为传入的参数,我们将x+y的结果返回(输出),下面我们调用这个函数

var result = add(1,2); //result = 3

函数的案例

1-n所有数字的和

function sum(n) {
    var sum = 0;
    for(var i = 1; i <= n; i++) {
        sum += i;
    }
    return sum;
}
//求1-5所有数字的和
var result = sum(5);  
console.log(result);
15

n的阶乘

function factorial(n) {
    var res = 1;
    for (var i = 1; i <= n; i++){
        res *= i;
    }
    return res;
}
var result = factorial(5);
console.log(result);
120

判断某个数是不是素数

function isPrime(num) {
    //遍历到根号num即可
    for(var i = 2; i <= Math.sqrt(num); i++){
        if (num % i == 0){
            //如果可以被整除,则返回false,不是素数
            return false;
        }
    }
    //遍历完则表明不能被整除,则返回true
    return true;
}
console.log(isPrime(3));
console.log(isPrime(5));
console.log(isPrime(15));
true
true 
false

求斐波那契数列第n(n>=3)个位置的值

function getFibonacci(n) {
    var num = 0;
    var num1 = 1;
    var num2 = 1;
    for (var i = 3; i <= n; i++){
        num = num1 + num2;
        num1 = num2;
        num2 = num;
    }
    return num;
}
console.log(getFibonacci(12));
144

arguments数组

  还是以上面相加函数为例,上面是将两个数字相加,那么现在如果我要将三个数字相加,我就要重新写一个函数

function add(x,y,z) {
    return x + y + z;
}

并且上面的两个数相加的函数被覆盖了,那有没有什么方法可以做到将任意个数的数字相加呢?用户传入两个数字就将两个数字相加,传入三个数字就将三个数字相加。

  我们可以使用arguments数组,这个数组里的内容就是用户传入的东西。所以函数可以写为

function add() {
    var sum = 0;
    for (var i = 0; i < arguments.length; i++){
        sum += arguments[i];
    }
    return sum;
}
console.log(add(1,2,3,4,5));

函数表达式

  函数的另一种定义方法为

var f = function () {
    函数体
};

方法的调用为

f();

这种表达的方法叫做函数表达式,其中

function () {
    函数体
}

叫做匿名函数。

  这种方法定义与

function f() {

}

看起来是一样的,并且调用的方法也是一样的,但是还是有稍微的不同,这个以后讲到预解析就知道了,我们一般会使用函数表达式的方式。

  我们可以根据下面的方法直接调用函数

(function () {...})();

这种方式叫做函数的自调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值