我正在研究优秀的老void运营商的用例。我看到提到的一个是为了防止箭头函数“泄漏”它们的结果,因为它们经常被编写(见fn0下面的例子)。
因此,论点是void在您实际上不需要结果的情况下使用来防止此类泄漏(请参阅 参考资料fn2),但我真的不明白仅将语句括在括号中(请参阅 参考资料fn1)有什么区别。
function doSomething(number) { return number + 1 }
const fn0 = () => doSomething(1)
const fn1 = () => { doSomething(1) }
const fn2 = () => void doSomething(1)
console.log(fn0()) // 2
console.log(fn1()) // undefined
console.log(fn2()) // undefinedRun Code Online (Sandbox Code Playgroud)
有人可以向我解释fn1和之间的区别fn2吗?它是否在“引擎盖下”做了一些不同的事情?这只是约定/可读性的问题吗?
...但我真的不明白将语句放在括号中有什么区别...
没有任何显着差异,两者都达到相同的结果。使用void只是更多的字符和更晦涩难懂。:-)
fn1有人可以向我解释和之间的区别吗fn2?它“在幕后”做了什么不同的事情吗?
并不真地。它采用不同的路径到达相同的目的地,但在这两种情况下调用函数的结果都是undefined。如您所知,fn1通过使用完整的函数体( )到达那里{},并fn2通过应用运算符到达那里void,但是其中没有潜伏的细微差别。
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |