javascript - 为什么在lodash中使用 `+start`而不是 `start`

标签 javascript lodash

https://github.com/lodash/lodash/blob/3.7.0/lodash.src.js#L2781

此代码段 start = start == null 中的 +start 是什么意思? 0 : (+开始 || 0);?

在我看来,+start 等于0+start。我们已经知道 start 是一个数字。

那么为什么不使用 start = start == null 呢? 0 : (开始 || 0);?

我是不是有什么误解?我真的很困惑。

最佳答案

您不知道,在该方法的开头,start 是一个数字。文档说它应该是,但是文档什么时候总是完全正确的?

+start0+start 之间没有任何真正的区别,因为两者都会将 start 强制转换为数字(因此-start,但它显然会反转过程中的符号)。

假设文档是正确的并且 start 已经是一个数字,则 +start 是一个空操作,不会导致任何问题或破坏任何内容。如果 start 不是数字(下一个最可能的类型可能是字符串),那么这将在使用它之前将其强制转换为数字。

关于javascript - 为什么在lodash中使用 `+start`而不是 `start`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828787/

相关文章:

javascript - 对象数组的操作

javascript - 在lodash的reduce函数中遇到Cannot read property 'push' of undefined

javascript - 从库中解构导入对象

javascript - jQuery 使用 css() 改变 DIV 背景

javascript - 关于每次 URL 更改的通知

javascript - Angularjs promise 未及时解决

iphone - 所有 javascript 库都适用于 Iphone 吗?阿普塔纳问题

javascript - 渲染数据前添加条件和排序

javascript - 使用 Lodash 遍历 JavaScript 对象中的属性

javascript - 如何将 csv 数据导入 netsuite?