- 首页 > 生活 > >
- 检测数据是不是除了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)}- 格式化时间
经验总结扩展阅读
-
化妆 不懂化妆技巧,当然显老,方圆脸女生这几个化妆误区,请别中招
-
8月上旬,旧情成过去,缘分早散去,彻底斩断旧情的4大星座
-
张兰|张兰支持具俊晔当爸,不介意孙子孙女改姓,称血脉关系改变不了
-
-
喝啤酒侃感情|24岁少妇自述:闪婚后,他前妻为孩子要复婚,他竟犹豫不决
-
面膜 啥牌子面膜补水效果最好 十大最好用的补水面膜排行榜
-
-
兰蔻35岁女人常用的大牌面霜:兰蔻人气高,法泽拉汝兰雅更温和
-
-
-
-
-
-
-
-
-
-
五行穿衣颜色指南2022年10月24号 五行穿衣指南每日分享
-
免费算命婚姻,2020年冬至不同时辰出生的猪宝宝命运怎么样?
-