javascript - Js 函数参数
问题描述
当我在控制台上运行此代码时,其结果是undefined
(function test (arguments) {
console.log(arguments[0]);
})(100);
但是当我改变arguments
它a
的结果是100
(function test (a) {
console.log(arguments[0]);
})(100);
为什么?我用谷歌搜索并阅读了MDN,但无法弄清楚为什么第一个是未定义的,第二个是 100。
解决方案
arguments
是一个标准的 JavaScript 变量,当你调用它时它会在函数的范围内初始化。它保存函数调用的参数。
在第一个片段中,您通过拥有自己的arguments
变量(不是数组)来覆盖该行为。你正试图[0]
摆脱它,那就是undefined
。
第二个片段工作得很好,因为 JS 能够arguments
正常获取变量。
推荐阅读
- paypal - PayPal Checkout JavaScript:更改货币而不重定向或刷新页面
- javascript - 返回不匹配的项目的条件是什么
- python - 从字典中的列表中有效地提取一组唯一值
- docker - docker-compose build 需要很长时间 构建时我可以启用详细/调试日志吗?
- ios - 如果从 Apple Music 播放音频,SFSpeechRecognizer 无法在真实设备上运行
- c++ - 错误:使用未声明的标识符“类名”
- c# - C# 发布 AJAX 空 json 结果
- javascript - JS jquery用数组中的值替换多个id属性
- php - 使用 Dockerfile 为 PHP 5.3 安装 mbstring
- javascript - HTML/CSS:文本内容溢出时如何制作段落?+更多问题