当我尝试在 JavaScript 中声明关联数组时,我将 Ruby 与 JavaScript 语法混为一谈。

>>> [a => b, c => d]

这将导致一个有效的数组和
>>> JSON.stringify([a => b, c => d])

返回 "[null,null]"
typeof(a) === "undefined" // true
typeof(b) === "undefined" // true
typeof(c) === "undefined" // true
typeof(d) === "undefined" // true

这个语法是什么意思?

最佳答案

这是 ES6's arrow function 的语法,它既是简写,又按词法设置 this 的值。它使用以下语法:

argument => returnValue

它也可以与多个参数或函数体一起使用(这使得非空函数需要 return 语句):
() => 1
(arg1, arg2) => 2
argument => { return 3; }

返回值是隐式的,这就是它似乎有效的原因。虽然这仍然是实验性的,但 Firefox 已经实现了这一点,尽管其他浏览器还没有这样做。

你得到 "[null]" 的原因是函数不能用 JSON 表示,所以它们被转换为 null 以进行序列化。

关于javascript - JavaScript 中的 "=>"运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21258817/

10-12 00:05
查看更多