0%
写法
函数声明
🌈 函数表达式(有名)
- 函数表达式右侧函数有函数名,也会被系统忽略。外部无法调用
1 2 3 4 5 6 7 8 9 10
| var test = function test1() { }
test.name;
test(); test1();
|
函数表达式(匿名)
1 2 3 4 5 6 7
| var test = function() { var a = 1, b = 1; }
var a = 10;
|
1 2 3 4 5
| var a = function b() { console.log(a, b); console.log(a.name, b.name); } a();
|
形参、实参
1 2 3 4
| function test(a, b) {
} test(1, 2);
|
🌈 形参、实参个数可以不相等
- arguments.length 是 实参个数
- [function name].length 是 形参个数
1 2 3 4 5
| function test(a, b, c) { console.log(arguments.length); console.log(test.length); } test(1, 2);
|
实参求和
1 2 3 4 5
| function sum() { return [...arguments].reduce((total, cur) => total += cur, 0); }
sum(1, 2, 3);
|
🌈 arguments
- 函数内部可以修改实参的值
- 实参如果没有传入的形参,则这个形参在函数内部无法赋值
1 2 3 4 5 6 7 8 9 10
| function test(a, b) { a = 3; console.log(arguments[0]); b = 2; console.log(arguments[1]); }
test(1);
|
return
- 终止函数的执行,return 后边的语句不会被执行
- 返回相应的值
1 2 3 4 5
| function test() { console.log('1'); return 123; console.log('2'); }
|
函数参数默认值
- 函数参数默认值:undefined
- 可以在定义形参时赋值默认值
1 2 3 4
| function test(a, b) { console.log(a, b); } test(1);
|
1 2 3 4
| function test(a = 1, b = 2) { console.log(a, b); } test();
|
1 2 3 4
| function test(a = 1, b) { console.log(a, b); } test(undefined, 2);
|
1 2 3 4 5 6
| function test(a, b) { var a = typeof(arguments[0]) !== 'undefined' ? arguments[0] : 1; var b = typeof(arguments[1]) !== 'undefined' ? arguments[1] : 2; console.log(a, b); } test();
|