vue源码中的检测方法的实现
2019-10-31 18:06
1766 查看
判断是否为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源码解析之Template转化为AST的实现方法
- Vue.js实现表格动态增加删除的方法(附源码下载)
- Android开发实现实时检测蓝牙连接状态的方法【附源码下载】
- Android反调试方法总结以及源码实现之检测篇(一)
- Android反调试方法总结以及源码实现之检测篇(一)
- ActiveX 中检测击键消息方法实现
- 【30分钟学习】二种简单实用的方法实现多语言解决方案(源码在附件)
- ASP.NET实现用户在线检测的类源码[转&收藏]
- Linux检测TCP连接断开的一种简单实现方法
- asp.net 抓取网页源码三种实现方法
- 对这个运动目标检测方法实现的结果A Hybrid Algorithm for Moving Object Detection
- ASP.NET实现用户在线检测的类源码
- ASP.NET实现用户在线检测的类源码 - -
- XMLHelper类 源码(XML文档帮助类,静态方法,实现对XML文档的创建,及节点和属性的增、删、改、查)
- asp.net中Post表单保存页面状态并输出源码的实现方法
- asp.net 抓取网页源码三种实现方法
- ASP.NET实现用户在线检测的类源码
- C#实现下载网页HTML源码的方法
- TCP套接口利用TCP自带的 SO_KEEPALIVE选项实现指定时间检测是否激活状态的方法
- ASP.NET实现用户在线检测的类源码