问题描述
- 一直以为length就是函数接收的参数的个数,最近看mdn巩固基础才知道map,filter,forEach之流除了回调函数,还有第二个参数用来指定回调的时候的this指向
- 数组的几个方法打印length是1,出乎意料
- parseInt打印length是2,符合预期
以下稍加试验之后的大胆猜测
- parseInt的第二个参数默认是10
- 数组方法中不设定第二个参数,this指向的是window,类似于在全局声明变量,其实就是window.xxx,也是省略window的
MDN 上的中文翻译:
length 是函数对象的一个属性值,指该函数有多少个 必须 要传入的参数,即形参的个数。
mdn 上 map 的参数,
不过,这个中文翻译跟英文不完全对应,仅仅用作参考,规范上是这样:
The value of the length property is an integer that indicates the typical number of arguments expected by the function.
不过题主提的 map
之类,规范上是这样规定的:
The length property of the map method is 1.The length property of the filter method is 1.
The length property of the reduce method is 1.
题主要找统一规定的话,通常就是去 MDN 找,然后 MDN 下方有规范可以引导你去 W3C||ECMA||WHATWG,通常的问题,到规范就能找到了。除非是最新的提案,要去 github 上找了
13 回答12.9k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
我觉得只是说定义的时候写了几个吧?,他才不管你里面偷偷的接收了几个。
这好像没什么实际意义吧