- 首页 > 生活 > >
- 检测数据是不是除了symbol外的原始数据
function isStatic(value) {return (typeof value =https://www.huyubaike.com/biancheng/=='string' ||typeof value =https://www.huyubaike.com/biancheng/=='number' ||typeof value =https://www.huyubaike.com/biancheng/=='boolean' ||typeof value =https://www.huyubaike.com/biancheng/=='undefined' ||value =https://www.huyubaike.com/biancheng/== null)}- 检查数据是否为有效的类数组长度
function isLength(value) {return (typeof value =https://www.huyubaike.com/biancheng/='number' &&value > -1 &&value % 1 == 0 &&value <= Number.MAX_SAFE_INTEGER)}- 检查数据是否为函数
function isFunction(value) {return Object.prototype.toString.call(value) === '[object Function]'}- 判断数据是否为时间对象
function isDate(value) {return Object.prototype.toString.call(value) === '[object Date]'}- 判断数据是否为正则对象
function isRegExp(value) {return Object.prototype.toString.call(value) === '[object RegExp]'}- 判断数据是否为数组类型的数据
function isArray(arr) {return Object.prototype.toString.call(arr) === '[object Array]'}- 获取数组中非undefined数据中的最大值
function max(arr) {arr = arr.filter(item => !_isNaN(item))return arr.length ? Math.max.apply(null, arr) : undefined}- 获取数组中非undefined数据中的最小值
function min(arr) {arr = arr.filter(item => !_isNaN(item))return arr.length ? Math.min.apply(null, arr) : undefined}- 横线转驼峰命名
let camelizeRE = /-(\w)/gfunction camelize(str) {return str.replace(camelizeRE, function (_, c) {return c ? c.toUpperCase() : ''})}- 驼峰命名转横线命名:拆分字符串,使用 - 相连,并且转换为小写
let hyphenateRE = /\B([A-Z])/gfunction hyphenate(str) {return str.replace(hyphenateRE, '-$1').toLowerCase()}- 字符串首位大写
function capitalize(str) {return str.charAt(0).toUpperCase() + str.slice(1)}- 深拷贝
function deepCopy(obj, hash = new WeakMap()) {// 日期对象直接返回一个新的日期对象if (obj.constructor === Date) return new Date(obj)// 正则对象直接返回一个新的正则对象if (obj.constructor === RegExp) return new RegExp(obj)// 如果循环引用了就用WeakMap解决if (hash.has(obj)) return hash.get(obj)// 遍历传图参数所有键的特性let allDesc = Object.getOwnPropertyDescriptor(obj)// 继承原型链let copyObj = Object.create(Object.getPrototypeOf(obj), allDesc)hash.set(obj, copyObj)for (let key of Reflect.ownKeys(obj)) {copyObj[key] =isComplexDataType(obj[key]) && typeof obj[key] !== 'function'? deepCopy(obj[key], hash): obj[key]}function isComplexDataType(obj) {return ((typeof obj === 'object' || typeof obj === 'function') && obj !== null)}return copyObj}- 数据深、浅拷贝
function deepCLone(obj) {// 定义变量检测传递参数是对象还是数组let objClone = Array.isArray(obj) ? [] : {}if (obj && typeof obj === 'object' && obj != null) {// 判断obju存在且类型为对象时,因为null也是for (let key in obj) {// 遍历对象类型的obj,判断obj中是否存在key属性if (obj.hasOwnProperty(key)) {// 判断如果obj[key]存在且是对象类型时应进行深拷贝,即在堆内存中开辟新的内存if (obj[key] && typeof obj[key] === 'object') {// 递归实现深拷贝objClone[key] = deepCLone(obj[key])} else {// 浅拷贝objClone[key] = obj[key]}}}}return objClone}- 获取数据类型,返回结果为 Number、String、Object、Array等
function getRawType(value) {return Object.prototype.toString.call(value).slice(8, -1)}- 格式化时间
经验总结扩展阅读
-
-
-
-
-
老北京|北京大爷住27平米小屋炫富惹争议,正宗老北京人到底“长”啥样?
-
-
杨玉环|杨玉环骗了我们一千多年!以胖为美的真相居然是
-
-
-
2023年农历七月初九结婚吉日 2023年农历七月初九宜结婚吗
-
-
导语:婚姻是条长满刺的毛毛虫 夫妻间的“高度差”如何调和?其实只在一念之差
-
模板骨相很绝的明星:张柏芝无视年龄,杨洋被封整容模板,肖战引争议
-
-
iPhone5S能拍摄720p视频吗?iPhone5S支持720p播放吗?
-
-
【幽默笑话】在富士康辞职以后|幽默笑话:老妈给我安排了一门亲事,硬是让我打扮了一番去相亲
-
-
|这3种为女生“花钱”的方法,男人掌握后,能打动她的心
-