- 首页 > 生活 > >
- 检测数据是不是除了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)}- 格式化时间
经验总结扩展阅读
-
-
发型2小时烫发变成5小时?烫完头发老气横秋?想变美没那么“简单”
-
-
刘思瑶靠模仿出道?刘思瑶的整体妆容造型,被另一个千万粉网红复制
-
儿媳|“想高攀我儿子?先把婚前财产交出来再说”,准儿媳:你穷疯了吧!
-
-
诺基亚手机2021年新款7610_诺基亚2021新机7610
-
-
-
LIDADA的梦想|被问到是否会关照媳妇的情绪,这位宝藏哥哥的回答太宠溺了,羡慕
-
-
赵名辉塔罗 12星座如果对你产生兴趣,会有什么举动?——赵名辉塔罗
-
-
-
心理学里的晕轮效应具体是什么意思 心理学里的晕轮效应是什么
-
劳动节 免费个性化算,2020年5月1日四月初九出生男宝宝命理查询
-
异性朋友之间有这几种称呼,多半关系不正常,很明显!
-
2020抖音最火晒娃的句子 2020抖音最火晒娃的句子有哪些
-
思念一个人时 女人在思念一个人时,女人会有这三个理由,她会主动拥抱他
-