JavaScript箭头函数语法

时间:2018-05-29 19:08:07

标签: javascript arrow-functions

我正在学习JavaScript并且一直在学习如何使用箭头函数语法,并且遇到了我不完全理解的这个问题,我觉得这是问我问题的最佳位置,因为我还没有找到确切的答案我正在寻找这个问题,但是。所以,这是代码。

let bigNumbers = [100, 200, 300, 400, 500];

let smallNumbers = bigNumbers.map(num => num / 100);

现在我的问题是,num来自哪里?这是一个存储运行代码时映射的新值的存储桶吗?我知道我们创建了一个新变量,它将返回一个新数组,因为数组中的元素已被修改?我不太确定,这就是我需要澄清的原因。谢谢你的时间。

2 个答案:

答案 0 :(得分:2)

num只是箭头函数的一个参数:

bigNumbers.map(num => num / 100)

...是简写,功能上等同于:

bigNumbers.map((num) => {
    return num / 100;
});

在您的示例中,使用Array map()方法,num参数是在该实例中迭代的数组中的项。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

答案 1 :(得分:1)

num是一个函数参数(或者你的案例中的 Method 属性; .map()Array.prototype的方法)。

num ... 您可以随意命名。

这里的基本内容是 它代表什么 。如果您查看一些文档,例如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

var new_array = arr.map(function callback(currentValue[, index[, array]]) {
    // Return element for new_array
}[, thisArg])

你可以看到第一个参数代表 currentValue ,换句话说就是当前的迭代值。

let smallNumbers = bigNumbers.map(num => num / 100);

转换为

let smallNumbers = bigNumbers.map((num) => {
    return num / 100;
});

进一步翻译为

var smallNumbers = bigNumbers.map(function(currentValue) {
    return currentValue / 100; // currentValue is the currently iterating value
});