javascript - JavaScript 中 arguments 对象的重要性
问题描述
我对 JavaScript 中的参数对象概念非常陌生,并试图从本教程中理解这个概念。
文档中的以下示例解释如下。
function func1(a, b, c) {
console.log(arguments[0]);
// expected output: 1
console.logr(arguments[1]);
// expected output: 2
console.log(arguments[2]);
// expected output: 3
}
func1(1, 2, 3);
但是我无法理解这个概念的重要性,我们主要在什么场景下使用这个概念?
请原谅我在手机上打字时的问题格式问题。
解决方案
arguments 对象在您可能有可变数量的参数的情况下很有用:
function sumAll() {
var res = 0;
for (var i = 0; i < arguments.length; i++) {
res += arguments[i];
}
return res;
}
console.log(sumAll(3)); // 3
console.log(sumAll(3, 4, 5)); // 12
但是,由于 ES6 是 2015 年标准化的 javascript 版本(也称为 ES2015),您可以使用 rest 参数语法来简化此操作:
function sumAll(...args) {
var res = 0;
for (var i = 0; i < args.length; i++) {
res += args[i];
}
return res;
}
console.log(sumAll(3)); // 3
console.log(sumAll(3, 4, 5)); // 12
因此不再需要 arguments 对象。
推荐阅读
- optimization - Optimize highly vectorized code in Julia?
- javascript - firebase 函数中有没有办法删除与正则表达式匹配的存储文件?
- php - Substr 不允许在表单上处理两位数代码
- c# - 如何自定义 AspNetUsers 表的表名
- rally - 使用 Rally SDK 获取 rallyfieldvaluecombobox 的多选值
- java - 如何根据条件从数组中删除元素?爪哇
- python - 如何从 python 向 C 传递不同大小的数组列表?
- javascript - 循环中的摩卡正则表达式长度计算不起作用
- python - 在 shell 或 Python 中使用 SFTP 递归获取文件列表,无需额外的库
- snakemake - snakemake 脚本访问标准输入/标准输出以进行流处理