arguments 的特殊项⚠️
- 反映实际传入的参数的类数组,
arguments.length表示实际传入的参数数量。需要与形参做区别。 - 箭头函数中没有预设
arguments!!!,arguments值可能是外部变量或普通变量。
参数是按顺序初始化的⚠️
- 参数引用参数:后面设定的参数,可以引用前面的参数作为默认值,反之不行。
new.target
- 如果函数是正常调用的,则
new.target的值是undefined;如果是使用new关键字调用的,则new.target将引用被调用的构造函数。
箭头函数中的 this⚠️
- 在箭头函数中,
this引用的是定义箭头函数的上下文
函数名的特殊
- 不同的声明方法会有不同的函数名
bind,get/set访问器也会有特殊的函数名前缀。
function foo() {} // name: foo
let bar = function() {}; // name: bar
let baz = () => {}; // name: baz
let fn = new Function(); // name: anonymous
其他
重载:可以通过检查参数的类型和数量,然后分别执行不同的逻辑来模拟函数重载。但是JS中不存在这个概念。