写法、类型
函数声明
function 函数名(参数) {
// 执行语句
}
⭐️ 函数表达式(有名)
- 函数表达式右侧函数有函数名,也会被系统忽略。外部无法调用,内部可以调用
var test = function test1() {
console.log(test1.name); // test1 内部可见
}
console.log(test.name); // test1
test(); // 可执行
// test1(); // 报错,test1函数外部不可见
函数表达式(匿名)
// 整体是个匿名函数表达式,function匿名函数这个值,这个整体是字面量
var test = function() {
var a = 1, b = 1; // 推荐
// var a = b = 1; //不推荐,此时的 b 并没有被 var ,b 为全局变量
}
var a = 10; // 10 这个值就是字面量
var a = function b() {
console.log(a, b); // [Function: b] [Function: b]
console.log(a.name, b.name); // b b
}
a();
形参、实参
function test(a, b) { // a, b 是形参
}
test(1, 2); // 1, 2 是实参
⭐️ 形参、实参个数可以不相等
arguments.length
是 实参个数
[function name].length
是 形参个数
function test(a, b, c) {
console.log(arguments.length); // 实参有 2 个:1 跟 2
console.log(test.length); // 形参有3个:a, b, c
}
test(1, 2);
(function() {}).length; // 0
实参求和
function sum() {
return [...arguments].reduce((total, cur) => total += cur, 0);
}
sum(1, 2, 3);
⭐️ arguments