用一个函数来判断一个值是否真的是true or false,之所以要做这个判断,是为了更加可配的来处理一个问题,就是0,字符串'',以及数字Infinity。
function isTrue(value, {zero = true, infinity = false, emptyString = false, emptyArray = false, emptyObject = false} = {}) { if(value === 0) return !!zero if(value === '') return !!emptyString if(value === Infinity) return !!infinity if(Array.isArray(value) && value.length === 0) return !!emptyArray if(value === null) return false if(typeof value === 'object' && Object.keys(value).length === 0) return !!emptyObject return !!value }
默认更改了上面这些值的返回结果,比如0,默认是返回false,但我认为0是一个明确的数组,应该返回true,而空字符串''则仍然保持返回false,另外,增加了空数组和空对象返回false。源码在这里,可能后期还会更新。
2017-04-21 3019