16 个日常开发必用的 JavaScript 代码片段

2024-12-30 16:19:18   小编

16 个日常开发必用的 JavaScript 代码片段

在 JavaScript 开发中,掌握一些实用的代码片段可以极大地提高开发效率。以下是 16 个在日常开发中经常会用到的 JavaScript 代码片段。

  1. 数组去重
function uniqueArray(arr) {
  return Array.from(new Set(arr));
}
  1. 数组扁平化
function flattenArray(arr) {
  return arr.flat(Infinity);
}
  1. 对象属性拷贝
function copyObject(obj) {
  return {...obj };
}
  1. 生成随机字符串
function generateRandomString(length) {
  let result = '';
  const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
  for (let i = 0; i < length; i++) {
    result += characters.charAt(Math.floor(Math.random() * characters.length));
  }
  return result;
}
  1. 字符串首字母大写
function capitalizeFirstLetter(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}
  1. 判断数据类型
function getType(obj) {
  return Object.prototype.toString.call(obj).slice(8, -1);
}
  1. 深拷贝对象
function deepCopy(obj) {
  if (typeof obj!== 'object' || obj === null) {
    return obj;
  }
  let newObj;
  if (Array.isArray(obj)) {
    newObj = [];
  } else {
    newObj = {};
  }
  for (const key in obj) {
    newObj[key] = deepCopy(obj[key]);
  }
  return newObj;
}
  1. 数组求和
function sumArray(arr) {
  return arr.reduce((a, b) => a + b, 0);
}
  1. 数组排序
function sortArray(arr) {
  return arr.sort((a, b) => a - b);
}
  1. 防抖函数
function debounce(func, delay) {
  let timer;
  return function (...args) {
    clearTimeout(timer);
    timer = setTimeout(() => {
      func.apply(this, args);
    }, delay);
  };
}
  1. 节流函数
function throttle(func, delay) {
  let lastCallTime = 0;
  return function (...args) {
    const now = Date.now();
    if (now - lastCallTime >= delay) {
      func.apply(this, args);
      lastCallTime = now;
    }
  };
}
  1. 字符串反转
function reverseString(str) {
  return str.split('').reverse().join('');
}
  1. 获取 URL 参数
function getUrlParams(url) {
  const params = new URLSearchParams(new URL(url).search);
  const result = {};
  for (const [key, value] of params) {
    result[key] = value;
  }
  return result;
}
  1. 计算字符串出现次数
function countString(str, target) {
  return str.split(target).length - 1;
}
  1. 异步加载脚本
function loadScript(url, callback) {
  const script = document.createElement('script');
  script.src = url;
  script.onload = callback;
  document.head.appendChild(script);
}
  1. 检测元素是否在视口内
function isElementInViewport(el) {
  const rect = el.getBoundingClientRect();
  return (
    rect.top >= 0 &&
    rect.left >= 0 &&
    rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
    rect.right <= (window.innerWidth || document.documentElement.clientWidth)
  );
}

掌握这些代码片段,将使您在 JavaScript 开发中更加得心应手,提高代码质量和开发效率。

TAGS: JavaScript 开发 JavaScript 代码 JavaScript 日常 JavaScript 必用

欢迎使用万千站长工具!

Welcome to www.zzTool.com