我想深入理解为什么会这样
[0, 1, 2].map(i => i + 1)
但这并不是
[0, 1, 2].map(i => {i + 1})
我在处理jQuery脚本时遇到了这个问题。我尝试使用带箭头功能的地图从复选框中提取$(this).data('id')
,我们得到了一个未定义的数组。大约一个小时后,我们通过纯粹的运气复制粘贴了一些堆栈代码和通知,唯一的区别是function() {}
所以现在我想知道为什么?使用箭头功能不好吗?它不兼容吗?
我正在使用Google Chrome版本66
答案 0 :(得分:2)
它的ES6箭头函数语法差异。添加'返回'您将收到回复[ 1, 2, 3 ]
[0, 1, 2].map(i => {return i + 1})
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
由于
答案 1 :(得分:0)
箭头函数有几种语法 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
第一个隐含的表达式返回值。 {...}的语法没有,因此您需要明确提供它。