首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用object.keys(参数).length VS arguments.length

使用object.keys(参数).length VS arguments.length
EN

Stack Overflow用户
提问于 2021-07-07 09:45:08
回答 3查看 84关注 0票数 1

我对JS很陌生,我试着理解我在几个地方读到的东西:

在尝试获取函数收到的参数数时,使用了Object.keys(arguments).length。然而,据我所知,这没有任何好处,更短的方法是只使用arguments.length

这是因为arguments拥有.length属性。(MDN参数对象)

有什么东西我遗漏了吗?在某些情况下,在性能或安全性方面首选使用object.keys()吗?

谢谢。

EN

Stack Overflow用户

回答已采纳

发布于 2021-07-07 10:27:54

arguments是一个“异域对象”,它是“类似数组的”--它具有数值属性和.length。与Object.keys一起使用它与Object.keys(someArray)一样有意义,也就是说,没有。

在新代码中,最好完全避免使用arguments,因为它具有一些不透明的特性,比如参数变量的不可见突变。示例:

代码语言:javascript
运行
复制
function someFunctionThatMutatesArray(a) {
    a[0] = 'hey'
}

function func(xyz) {
    someFunctionThatMutatesArray(arguments)
    console.log(xyz) // surprise
}

func(100)

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68283649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档