10分钟搞定JavaScript 函数定义

JavaScript 的函数使用灵活,对应的其定义也有多种方式,包括:普通函数、匿名函数、箭头函数(ES6)。

1. 定义一个函数

通过 function 函数名() 语法定义函数 ,例:

// 定义一个函数: hello
function hello() {
    console.log("Hello javascript");
}
// 调用hello 函数
hello();

输出:

Hello javascript
2. 带普通参数的函数

带参数的函数定义与上述例子相同,区别就是在函数名称后面的()内写入形式参数的名称,供函数内部调用。例:

// 定义一个函数: hello, 参数:name
function hello_with_name(name) {
    console.log("Hello, " + name);
}
// 调用hello 函数
hello_with_name('Junyi');

输出:

Hello, Junyi
3. 参数是函数的函数

不同于其他语言,JavaScript 中函数的参数可以是另一个函数(有点神奇),这种灵活的语法可以给程序带来更好的扩(sao)展(cao)性(zuo)。

我们来用生活中的一个例子理解一下。现在小区都有X鸟驿站,居民可以去X鸟驿站邮寄包裹,邮寄时可以选择快递公司。

问题来了,如何用程序来实现呢?JavaScript 有一个灵活的方式:

// 定义Z通快递方法,接收包裹,邮寄包裹
function ztong(package) {
    console.log("Z通:收到包裹:%s", package);
}
// 定义S丰快递方法,接收包裹,邮寄包裹
function sfeng(package) {
    console.log("S丰:收到包裹:%s", package);
}
// 定义菜鸟驿站方法,接收客户的包裹以及所择的快递公司
function yizhan(package, kuaidi) {
    console.log("收到包裹:%s, 转发给快递公司", package);
    kuaidi(package);
}
// 客户去邮寄一个水杯,选择了顺丰快递
yizhan("水杯", sfeng);

输出:

驿站收到包裹:水杯, 转发给快递公司
S丰:收到包裹:水杯
4. 匿名参数

匿名参数直接理解就是没有名字的函数,可以理解为:“内部处理消化了”,“私了”等等关联概念。我们继续用驿站的例子:

某东最近推出了快递业务,用户不用出门,在APP上下单,稍后就会有快递人员来取件。

这个时候,接单订单后每个定点驿站内部排除对应的取件员就够了,我们可以这么实现:

// 某东入口规则,根据用户提供的地址和包裹描述,提供取件服务,
function jd_yizhan(address, package, qujian) {
    console.log("用户下单了,下放到驿站通知快递员上门取件");
    qujian(address, package);
}

// 03号驿站收到订单后,内部安排2020号去取件
jd_yizhan("1-502", "球鞋",function (address, package) {
    console.log("我是03驿站快递员:2020号");
    console.log("取货地址: %s, 货物描述: %s", address, package);
});

输出:

用户下单了,下放到驿站通知快递员上门取件

我是03驿站快递员:2020号
取货地址: 1-502, 货物描述: 球鞋
5. 箭头参数

在JavaScript 中还存在一种更简洁的函数写法:箭头函数。语法规则:

(参数1, 参数2, …, 参数N) => { 函数声明 }

let sum = (x, y) => {
    return x+y;
}
console.log(sum(10, 20));

输出:

30

我们也可以将上例中的函数改写成如下形式:

jd_yizhan("1-502", "球鞋", (address, package) => {
    console.log("我是03驿站快递员:2020号");
    console.log("取货地址: %s, 货物描述: %s", address, package);
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值