NodeJS函数
- 由于js是弱语言,因此,函数的入参和出参可以为任意形式而不用指定类型。当然也没有办法使用冒号的形式进行参数类型注释。
但是typescript可以使用冒号形式进行参数类型注释。
1. 普通的函数定义
-
- 不带参数形式
printHello
- 带参数形式
plus
- 使用
return
获取返回值
- 不带参数形式
function printHello() {
console.log("Hello");
}
function plus(a, b) {
return a * b;
}
printHello();
console.log(plus(1, 2));
2. 函数句柄
-
- 定义一个常量的函数句柄。
const sumHDL = function (i) {
var sum = 0;
for (var a = 0; a < i; a++) {
sum += a;
}
return sum;
};
console.log(sumHDL(5));
-
- 定义一个可变的函数句柄。
function plus(a, b) {
return a * b;
}
var plusHDL = plus;
console.log(plusHDL(3, 4));
3. 箭头函数
-
- 虽然箭头函数有很多种描述方式,但是为了规范,一个项目工程里大家尽量用统一的方式去描述,可以提高代码的可维护性。
- 箭头函数参考文档:https://www.w3school.com.cn/js/js_arrow_function.asp
-
- 不带入参的箭头函数
let printHelloHDL2 = () => {
console.log("Hello2");
}
/*
* 相当于
let printHelloHDL2 = function() {
console.log("Hello2");
}
*/
-
- 带参数的箭头函数
// 带参数的箭头函数
let plusHDL = (a, b) => {
console.log(a * b);
}
/*
* 相当于
let plusHDL = function(a, b) {
console.log(a * b);
}
*/
4. 函数的参数中内嵌函数
-
- 这是我在看JavaScript项目中经常会看到的一些例子。
- 最常见到的就是延时函数
setTimeout
setTimeout(JavaScript 函数, 等待的毫秒数)
setTimeout(function() {
console.log("delay Time Print")
}, 3000);
console.log("Start!");
// 或者写成如下形式:
setTimeout(() => {
console.log("delay Time Print")
}, 3000);
console.log("Start!");
-
- 但是上述表示方式,我还不知道如果存在入参,或者出参需要如何编写代码。
- 比较通用的方式如下:
function add(a ,b) {
return a + b;
}
function plus(a ,b) {
return a * b;
}
function calculate(a, b, func) {
var result = func(a, b);
console.log(result);
}
calculate(1, 5, add);
calculate(2, 10, plus);