常用原生js自定义函数总结

常用原生JS自定义函数总结

这篇攻略将会介绍一些常用的原生JS自定义函数,包括数组、字符串、日期、对象等方面,让您更加深入地了解JS的各个方面。

数组

数组去重函数

function uniqueArr(arr) {
  return Array.from(new Set(arr));
}

// 示例
const arr1 = [1, 2, 3, 2, 1];
console.log(uniqueArr(arr1)); // [1, 2, 3]

数组扁平化函数

function flatten(arr) {
  return arr.reduce((acc, cur) => 
    Array.isArray(cur) ? acc.concat(flatten(cur)) : acc.concat(cur), [])
};

// 示例
const arr2 = [1, [2, [3, 4], 5], 6];
console.log(flatten(arr2)); // [1, 2, 3, 4, 5, 6]

字符串

首字母大写函数

function capitalize(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}

// 示例
const str1 = "hello world";
console.log(capitalize(str1)); // "Hello world"

字符串翻转函数

function reverseStr(str) {
  return str.split("").reverse().join("");
}

// 示例
const str2 = "hello world";
console.log(reverseStr(str2)); // "dlrow olleh"

日期

获取当前时间戳

function getCurrentTimestamp() {
  return new Date().getTime();
}

// 示例
console.log(getCurrentTimestamp()); // 1642117182692

自定义时间格式化函数

function formatDate(date, fmt) {
  let o = {
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
    "q+": Math.floor((date.getMonth() + 3) / 3),
    "S": date.getMilliseconds()
  };

  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  }

  for (let k in o) {
    if (new RegExp("(" + k + ")").test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    }
  }

  return fmt;
}

// 示例
const date = new Date();
console.log(formatDate(date, "yyyy-MM-dd hh:mm:ss.S")); // "2022-01-14 10:32:16.083"

对象

判断空对象函数

function isEmptyObject(obj) {
  return Object.keys(obj).length === 0;
}

// 示例
const obj1 = {};
console.log(isEmptyObject(obj1)); // true

const obj2 = { name: 'Alice' };
console.log(isEmptyObject(obj2)); // false

深复制对象函数

function deepCopy(obj) {
  let newObj = Array.isArray(obj) ? [] : {};

  for(let key in obj) {
    if(obj.hasOwnProperty(key)) {
      newObj[key] = typeof obj[key] === 'object' ? deepCopy(obj[key]) : obj[key];
    }
  }

  return newObj;
}

// 示例
const obj3 = { name: 'Alice', age: 20, hobbies: ['reading', 'swimming'] };
const obj4 = deepCopy(obj3);
obj4.hobbies.push('playing');
console.log(obj3.hobbies); // ['reading', 'swimming']
console.log(obj4.hobbies); // ['reading', 'swimming', 'playing']

通过上面的示例说明,可以看出每个函数的用法和具体实现,避免了对函数理解上的模糊。这也只是JS中一些常用的自定义函数总结,关于JS还有很多非常实用的函数和功能,需要我们不断学习和探索。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:常用原生js自定义函数总结 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript中的with语句学习笔记及用法

    JavaScript 中的 with 语句学习笔记及用法 with 语句是 JavaScript 中的一个语法结构,可以方便地访问同一个对象中的多个属性或方法,从而简化代码。但是,使用 with 语句会在某些情况下引发一些不容易被发现的“错误”,所以在使用时需要注意。 语法 with 语句的基本语法如下: with (object) { // code bl…

    JavaScript 2023年6月10日
    00
  • 3分钟精通高阶前端随手写TS插件

    接下来我将详细讲解如何通过3分钟精通高阶前端随手写TS插件的攻略。 1. 了解 TypeScript TypeScript是微软开源的高级类型应用程序设计语言。它是JavaScript的一种超集,支持静态类型检查、编译时类型检查、类型推断等功能。在使用TypeScript之前,需要了解TypeScript的基本概念、语法和用法。 2. 安装 TypeScri…

    JavaScript 2023年6月11日
    00
  • asp.net的GridView控件使用方法大全

    ASP.NET GridView控件的使用方法大全 ASP.NET GridView是一种常用的Web控件,用于显示或编辑数据库中的数据。在本篇文章中,我们将详细介绍GridView控件的使用方法。 GridView控件基本使用方法 创建GridView控件 使用ASP.NET Web表单,可以在可视化设计界面中加入GridView控件,或者手动编辑代码,添…

    JavaScript 2023年6月11日
    00
  • JavaScript 数据类型详解

    JavaScript 数据类型详解 简介 JavaScript 是一种弱类型、动态类型的编程语言,数据类型非常多样化。本文将从基本数据类型、对象类型和特殊数据类型三个方面详细介绍 JavaScript 中的数据类型。 基本数据类型 数值型(Number) 数值型是 JavaScript 中最基本的数据类型。它可以表示整数和浮点数。JavaScript 使用 …

    JavaScript 2023年5月17日
    00
  • JavaScript中0、空字符串、’0’是true还是false的知识点分享

    当JavaScript中使用布尔类型时,0、空字符串、’0’三者在布尔类型中都代表false。但是在某些场景下,它们会被解释成true。下面是关于这些场景的详细讲解: 0 在JavaScript中,数字0代表false。但是,在进行逻辑非操作符“!”运算时,0会被解释成true,因为它不是布尔类型,而是数值类型。例如: console.log(!0) // …

    JavaScript 2023年5月28日
    00
  • JavaScript写个贪吃蛇小游戏(超详细)

    下面是“JavaScript写个贪吃蛇小游戏(超详细)”的完整攻略。 1. 准备工作 在开始编写贪吃蛇游戏前,我们需要准备以下工具和资源: 一个编辑器,比如VSCode。 一些基础的HTML、CSS和JS知识。 贪吃蛇游戏的素材,可以从互联网上下载。 2. 游戏介绍 贪吃蛇游戏是经典的像素游戏之一,游戏规则很简单:玩家控制蛇的移动,蛇吃到食物后会变长,玩家需…

    JavaScript 2023年5月28日
    00
  • javascript格式化日期时间方法汇总

    下面我为大家详细讲解一下“javascript格式化日期时间方法汇总”的完整攻略。 1. 引言 在前端的工作中,日期时间格式转换是一个十分常见的问题。因此,有必要总结一下javascript中处理日期时间的API和格式化日期的方法,以便于在工作中快速有效地使用。 2. Date对象 在javascript中,我们可以使用内置的Date对象来处理日期时间。Da…

    JavaScript 2023年5月27日
    00
  • 解析John Resig Simple JavaScript Inheritance代码

    解析 John Resig 在 Simple JavaScript Inheritance 代码的思路可以分为以下几个部分: 简介 这是 John Resig 在 2008 年发布的一个 JavaScript 类继承的库,用来实现类的继承。 源代码及解析 下面我们来逐行分析源代码实现: 首先,定义了一个匿名函数,并将其赋值给 Class 变量。 var Cl…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部