本文为lodash源码分析的第10篇,后续会持续更新这个专题,欢迎指正。
依赖
import isSymbol from '../isSymbol.js'
源码分析
baseToNumber函数的作用是将参数value转换成Number类型的值。
const NAN = 0 / 0
function baseToNumber(value) {
if (typeof value === 'number') {
return value
}
if (isSymbol(value)) {
return NAN
}
return +value
}
前提:
定义常量NAN,通过0 / 0获取NaN值。
首先,判断value是否为number类型,是则直接返回value值。
接着,判断value是否为Symbol类型,是则返回NAN。
最后,使用一元加运算符把value转换为数字返回。