JavaScript

超轻量级php框架startmvc

vue源码中的检测方法的实现

更新时间:2020-09-15 21:54:01 作者:startmvc
判断是否为undefined或nullconstisDef=(v)=>{returnv!==undefined&&v!==null}判断是否为Promise函数constisProm

判断是否为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 检测