JS 函数有几种传参形式呢?

在 ES6 之前,JS 函数的参数是简单粗暴的,在 ES6 之后,增加了对默认参数和变长参数的显式支持。

在 ES6 之前,JS 函数除了在定义的时候设置的位置参数以外,也可以接受任意参数,因为在 JS 函数内部,会通过 arguments 获得所有传入的函数参数。

值得着重注意的是,JS 中的默认参数的表现行为和 Python 中不一致。

实际上, JS 中默认参数也只和位置有关,从左往右依次计算。

在调用的时候,即使是默认参数,也是严格遵循位置接收传入的参数。

这种做法突出了一点:越可能显性赋值的参数,越要放到前面,位置很关键,即使对于默认参数也一样。

在 ES6 中,通过 …args 显式接受可变长参数,统一归到一个数组当中,并不像 Python 那样提供字典形式的可变长参数。


不知是该恭喜,还是该怎样,总之阅读到该文的,你是第 人。每一次刷新,都是不同的自己。