https://github.com/lodash/lodash/blob/3.7.0/lodash.src.js#L2781
这段start = start == null ? 0 : (+start || 0);中的+start是什么意思?
在我看来,+start等同于0+start。我们已经知道start是一个数字。
那么为什么不使用start = start == null ? 0 : (start || 0);呢?
有什么我误解的地方吗?我真的很困惑。
发布于 2015-04-24 00:06:42
在该方法开始时,您不知道start是一个数字。文档说它应该是正确的,但是什么时候文档总是完全正确的?
+start和0+start之间没有任何真正的区别,因为两者都会将start强制转换为一个数字( -start也是如此,但它显然会在此过程中颠倒符号)。
假设文档是正确的,并且start已经是一个数字,那么+start就是一个no-op,不会造成任何问题或破坏任何东西。如果start不是一个数字(下一个最有可能的类型是string),那么在使用它之前,这将强制它变成一个数字。
https://stackoverflow.com/questions/29828787
复制相似问题