当我尝试在 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/