太阳渐渐往下落,它的脸涨得越来越红,红的像个大火球,把身边的云染成五颜六色。慢慢地它走到西山背后,把美丽的霞光留在遥远的天边。我们都看得目瞪口呆。我的心里在想:晚霞真美!
判断是否为undefined或null
const isDef = (v) => { return v !== undefined && v !== null }
判断是否为Promise 函数
const isPromise = (val) => { return ( val !== undefine && typeof val.then === 'function' && typeof val.catch === 'function' ) }
判断是否为简单数据类型
const isPrimitive (value) => { return ( typeof value === 'string' || typeof value === 'number' || typeof value === 'symbol' || typeof value === 'boolean' ) }
严格检查复杂数据类型
const isPlainObject = (obj) => { return Object.prototype.toString.call(obj) === '[object Object]' } const isRegExp = (v) => { return Object.prototype.toString.call(v) === '[object RegExp]' }
将驼峰字符串转成连接符 magicEightTall 转换成 magic-eight-tall
const hyphenateRE = /\B([A-Z])/g const hyphenate = (str) => { return str.replace(hyphenateRE, '-$1').toLowerCase() }
将连接符转成驼峰字符串 magic-eight-tall 转换成 magicEightTall
const camelizeRE = /-(\w)/g const camelize = (str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') }
如果不想重复转换,可用以下方法调用转换函数
const cached = (fn) => { const cache = Object.create(null) console.log(cache); return ((str) => { const hit = cache[str] return hit || (cache[str] = fn(str)) }) };
例
const camelize = cached((str) => { return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '') })
到此这篇关于vue源码中的检测方法的如何实现就介绍到这了。女人最先衰老的从来不是容貌,而是那份不顾一切的闯劲!更多相关vue源码中的检测方法的如何实现内容请查看相关栏目,小编编辑不易,再次感谢大家的支持!