首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用参数数组更改JavaScript函数的参数值

使用参数数组更改JavaScript函数的参数值
EN

Stack Overflow用户
提问于 2019-01-23 08:39:26
回答 6查看 7.1K关注 0票数 36

我正在学习JavaScript,对arguments属性数组非常困惑。

我有一个函数,它接受一个参数并返回它。当我传递该参数并使用arguments[0] = value重新分配它时,它正在更新该值。

代码语言:javascript
运行
复制
function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(1)); //returns 2

但是,当我没有参数调用相同的函数时,它会返回undefined

代码语言:javascript
运行
复制
function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a()); //returns undefined

但是即使我通过了undefined,这个值也会更新。

代码语言:javascript
运行
复制
function a(b) {
  arguments[0] = 2;
  return b;
}
console.log(a(undefined)); //returns 2

我认为,如果不将参数传递给JavaScript函数,它会自动创建该参数并将其赋值给undefined,更新后它应该会反映更新后的值,对吗?

a()a(undefined)也是一样的,对吧?

EN

Stack Overflow用户

发布于 2019-01-23 08:50:14

这是因为参数不像Array,它是一个具有整数索引数据键和属性长度的对象,如果长度等于零,就意味着没有参数

代码语言:javascript
运行
复制
function a(b) {
    arguments[0] = 2;
    console.log(arguments.length) 
    return b;
}
a(1); // length 1  returns 2
console.log(a());  // length 0  returns undefined

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

https://stackoverflow.com/questions/54323086

复制
相关文章

相似问题

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