@ryanuo/utils
Version:
提供多种实用工具函数,涵盖算法、浏览器操作、网络请求等多个领域
27 lines (26 loc) • 782 B
JavaScript
export const toString = (v) => Object.prototype.toString.call(v);
export function getTypeName(v) {
const type = toString(v);
return type.slice(8, -1).toLowerCase();
}
export function numberToFixed(num, fixed = 4) {
if (num === 0 || Number.isNaN(num))
return 0;
return Number(num.toFixed(fixed));
}
export function deepClone(obj) {
if (obj === null || typeof obj !== "object")
return obj;
if (obj instanceof Date)
return new Date(obj.getTime());
if (obj instanceof RegExp)
return new RegExp(obj.source, obj.flags);
if (Array.isArray(obj))
return obj.map((item) => deepClone(item));
const clone = {};
for (const key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key))
clone[key] = deepClone(obj[key]);
}
return clone;
}