就是不太明白这样子写为什么不会报错?这样子写是什么意思?
let fn = () => {a: 1}
fn()
就是那个 a: 1 为什么不会报错... 是什么意思... 求解~~~ 蟹蟹!!
就是不太明白这样子写为什么不会报错?这样子写是什么意思?
let fn = () => {a: 1}
fn()
就是那个 a: 1 为什么不会报错... 是什么意思... 求解~~~ 蟹蟹!!
ES6箭头函数:http://es6.ruanyifeng.com/#do...
上面代码中,原始意图是返回一个对象{ a: 1 },但是由于引擎认为大括号是代码块,所以执行了一行语句a: 1。这时,a可以被解释为语句的标签,因此实际执行的语句是1;,然后函数就结束了,没有返回值。
你这个写是用语法错误的,加个括号就好了,我也经常这么写:
let fn = () => ({a: 1})
fn()
因为如果不加括号,大括号就是方法体的范围符而不是对象字面量的意思了,方法体中你直接来个a: 1
肯定是不对的,加个括号就可以了
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
我给你翻译一下
翻译后
题主疑惑的是为什么 a: 1 不报错吧. 因为 js 里面是有 label 语句的! a: 1 这里会被当做一个标记语句, 所以不会报错.