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);