/
JS arguments 对象
JS arguments 对象
在 JS 中,函数访问自己的参数除了典型的声明+访问,还可以通过 arguments
变量来访问(这个变量不需要任何形式的声明,会自动存在于函数内)
这个参数的存在主要是为了可变参数函数使用的;在 ES6 开始,建议直接使用新的 ...args
剩余参数语法来处理可变参数
类数组
arguments
是一个类数组参数,它可以获取 length
属性、可以利用数字下标读取、可以用迭代器来循环,但是不存在其他标准 Array 存在的方法,如需使用可先利用 Array.of(arguments)
或 [...arguments]
来先转换成数组
修改 arguments
应当始终避免对于 arguments 的修改
在非严格模式下,如果所有的函数参数都是简单参数(不存在默认值、解构、默认参数),那么 arguments
会和函数的实际参数保持一致 —— 对任一的修改会同时影响到另一个
否则(严格模式 / 使用了非简单参数),不会影响
可以简单记忆成,如果使用了非简单参数,
function myFunc(a, b=1) { /* ... */ }
实际做的事情是
function myFunc() {
const {a, b=1} = arguments;
/* ... */
}
, multiple selections available,
Related content
JS bind/call/apply
JS bind/call/apply
More like this
Week 3 @ 2025 算法周记【前缀和 + 双指针数组】
Week 3 @ 2025 算法周记【前缀和 + 双指针数组】
More like this
Week 52 @ 2024 算法周记【双指针链表 + 双指针数组】
Week 52 @ 2024 算法周记【双指针链表 + 双指针数组】
More like this
JS 原型 (prototype)
JS 原型 (prototype)
More like this
Week 47 @ 2024 算法周记【回溯 - 排列/组合/子集】
Week 47 @ 2024 算法周记【回溯 - 排列/组合/子集】
More like this