- 首页 > 生活 > >
- 检测数据是不是除了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)}
- 格式化时间
经验总结扩展阅读
-
-
-
-
医漫说|女人怎么才能减少皱纹?掌握这几个小妙招让皮肤永葆年轻化
-
-
静安区延平路属于哪个街道,上海延平路237弄属于上海哪个区?
-
-
-
在网上看到这样一个问题:失恋后你为挽留前任都做过什么?很多女生留言说|男人提出分手,聪明的女人会反思自己
-
天上有个太阳 河北女子跟情人开车到郊外幽会, 老公监听后赶到, 最终酿成惨剧!
-
-
-
|一女子因没对象被催婚与父母拌嘴欲轻生:父母管多了真的会伤到孩子
-
-
婚姻|这4种“过分”的表现,爱你爱到骨子里的男人才会有
-
-
-
-
幸知在线|罗永浩:自曝妻子曾为其担保6亿巨债,他如今竟过成这样?
-