JavaScript函数

JavaScript函数


JavaScript的函数本质上属于object类型


定义函数

主要用如下两种方式:

// 第一种
function 函数名 ([形参列表]) {
	函数体
}

// 第二种,下面的变量名可以当成函数名来使用,此时=后面的是一个匿名函数
var 变量名 = function ([形参列表]) {
	函数体
};

函数调用

语法如下:

函数名([实参列表]);

注意,当实参和形参个数不相等时,分为以下两种情况

  1. 实参>形参,则多余的实参会被忽略
  2. 形参>实参,则缺少的形参默认为undefined

例如:

function sum(a, b) {
    return a + b;
}
console.log(sum(1)); // NaN,此时函数中的b是undefined
console.log(sum(2, 4, 8)); // 6

arguments对象

在每一个函数中都会有一个arguments对象,其保存调用该函数时的有关信息,其中最重要的是实参,第一个实参的key是0,第一个实参的key是1,以此类推,多余的实参也会保存,arguments.length表示实参个数。

例如:

function sum(a, b) {
    let result = 0
    for (let i = 0; i < arguments.length; i++) {
        result += arguments[i];
    }
    return result;
}
console.log(sum(1)); // 1
console.log(sum(2, 4, 8)); // 14

其还有一个属性callee,指向函数自身,常用于递归,这样当修改函数名时,函数内的函数名不用修改,比较方便,例如:

// 求阶乘
    function fact (n) {
        if (n === 1) 
            return 1;
        return n * arguments.callee(n - 1);
    }
    console.log(fact(4)); // 24

立即执行函数表达式IIFE

语法如下:

(函数)(实参);

IIFE会立即将实参带入函数里执行,而不需要去手动调用函数,且无法在别的地方调用,因此第一个括号里的函数通常是匿名函数,一般用于JS库、JS插件的封装或闭包处理。

注意:尽管IIFE通常写成多行,但它是一个表达式,所以最好在最后加上分号,且上一句也要用分号结尾,否则会合并上一句一块执行。

例如:

var x = (function (a, b) {
    return a + b;
})(1, 2);
console.log(x);

默认值

在定义函数时,可以给定形参默认值,例如:

function sum(a, b = 10) {
    return a + b;
}
console.log(sum(10)); // 20
console.log(sum(1, 100)); // 101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值