很多教程里都这么写的:
如果箭头函数只有一行语句,且不需要返回值,可以采用下面的写法,就不用写大括号了。
let fn = () => void doesNotReturn();
我想知道void doesNotReturn()是什么意思?doesNotReturn是随便乱写的吗?
很多教程里都这么写的:
如果箭头函数只有一行语句,且不需要返回值,可以采用下面的写法,就不用写大括号了。
let fn = () => void doesNotReturn();
我想知道void doesNotReturn()是什么意思?doesNotReturn是随便乱写的吗?
你可以试一下以下代码
const a = () => {return 1}; // 相当于const a = () => 1;
a(); // 1
const b = () => a();
b(); // 1
const c = () => void a(); // void 摒弃了a的返回值
c() // undefined
归根结底 这些都是语法糖而已
箭头函数不需要大括号其实就是为了默认return(在这里就是默认return 了a的返回值),但是如果你这个函数自身并不需要返回值,那么用void修饰以下就可以了
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
void就是什么也不返回,但是执行后面的表达式。
这里其实就是想简化代码,实际上相当于,行数多了一点:
但是如果你写成下面这样,这个函数又会返回doesNotReturn函数的返回值:
另外一种写法也可以是:
运用逗号表达式,执行了表达式后,最后fn这个函数不返回值。
主要是代码简洁的一种写法而已。