8个工程必备的JavaScript代码片段

下面是“8个工程必备的JavaScript代码片段”的完整攻略:

简介

这篇攻略主要介绍8个在前端工程中经常使用的JavaScript代码片段,这些代码片段能够提高你的代码质量和工作效率,让你的代码更加可读、可维护。

文章目录

  1. forEach循环遍历数组
  2. Object.keys()获取对象的属性名数组
  3. 数组去重
  4. 获取URL参数值
  5. 判断一个对象是否为空
  6. 判断两个对象是否相等
  7. 将HTML转义为实体
  8. 将实体转义为HTML

1. forEach循环遍历数组

forEach()方法是用于数组遍历的常用方法。它接受一个回调函数作为参数,该回调函数接收三个参数:当前元素、元素索引和数组自身。下面是一个简单的例子:

const arr = [1, 2, 3];
arr.forEach((item, index, array) => {
  console.log(item, index, array);
})

输出:

1 0 [1, 2, 3]
2 1 [1, 2, 3]
3 2 [1, 2, 3]

2. Object.keys()获取对象的属性名数组

Object.keys()方法返回一个给定对象的自身可枚举属性数组,包含对象上所有属性(不包括继承来的属性)。下面是一个例子:

const obj = { name: 'Jack', age: 20 };
const keys = Object.keys(obj);
console.log(keys);

输出:

['name', 'age']

3. 数组去重

对于一个包含重复元素的数组,可以使用ES6中的Set来进行去重:

const arr = [1, 2, 2, 3, 4, 4];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4]

4. 获取URL参数值

对于一个URL地址,可以使用以下函数来获取指定参数的值:

function getUrlParam(url, key) {
  const paramsArr = url.split('?')[1].split('&');
  for (let i = 0; i < paramsArr.length; i++) {
    const param = paramsArr[i].split('=');
    if (param[0] === key) {
      return param[1];
    }
  }
}
const url = 'https://www.example.com/?id=123&name=Jack';
console.log(getUrlParam(url, 'id')); // 123

5. 判断一个对象是否为空

可以使用Object.keys()方法将对象的属性名转换为数组,然后判断该数组的长度是否为0来判断对象是否为空:

function isEmptyObj(obj) {
  return Object.keys(obj).length === 0;
}
const obj = { };
console.log(isEmptyObj(obj)); // true

6. 判断两个对象是否相等

可以使用JSON.stringify()将两个对象转换为字符串,然后再进行比较。需要注意的是,该方法只能比较简单的对象,对于包含函数或原型链对象等属性的复杂对象无法比较:

const obj1 = { name: 'Jack', age: 20 };
const obj2 = { name: 'Jack', age: 20 };
console.log(JSON.stringify(obj1) === JSON.stringify(obj2)); // true

7. 将HTML转义为实体

可以使用正则表达式中的特殊字符来匹配HTML标签,然后将其转义为实体。以下是一个简单的例子:

function escapeHTML(str) {
  const escapeChars = {
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#39;'
  };
  return str.replace(/[<>"']/g, char => escapeChars[char]);
}
const htmlStr = '<p>Hello "world"!</p>';
console.log(escapeHTML(htmlStr)); // &lt;p&gt;Hello &quot;world&quot;!&lt;/p&gt;

8. 将实体转义为HTML

可以使用浏览器提供的内置API将实体转换为HTML,例如使用document.createElement()创建一个p标签来显示转义后的HTML文本:

function unescapeHTML(str) {
  const div = document.createElement('div');
  div.innerHTML = str;
  return div.textContent;
}
const entityStr = '&lt;p&gt;Hello &quot;world&quot;!&lt;/p&gt;';
console.log(unescapeHTML(entityStr)); // <p>Hello "world"!</p>

结语

以上就是8个在前端工程中经常使用的JavaScript代码片段,希望能够对你的工作有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:8个工程必备的JavaScript代码片段 - Python技术站

(0)
上一篇 2天前
下一篇 2天前

相关文章

  • 跟我学习javascript的循环

    跟我学习 JavaScript 的循环 JavaScript 中的循环语句可以让代码块重复执行多次,常用的循环语句有 for 循环、while 循环、do-while 循环等。本攻略将详细讲解 JavaScript 中的循环语句的使用方法。 for 循环 for 循环是最常用的循环语句之一,使用起来非常简便,可以按下面的方式进行: for (let i = …

    JavaScript 2023年5月18日
    00
  • Javascript实现Array和String互转换的方法

    下面是Javascript实现Array和String互转换的方法的完整攻略。 Array转String 方法一:join() 使用join()方法可以将数组变成一个字符串。该方法会将数组中所有元素按照指定的分隔符连接起来并返回一个字符串。默认的分隔符是逗号。 var arr = [‘hello’, ‘world’, ‘!’]; var str = arr….

    JavaScript 1天前
    00
  • JavaScript与ActionScript3两者的同性与差异性

    JavaScript和ActionScript3都是基于ECMAScript语法的编程语言,它们有一些共同的特性,但也有很多不同之处。 1. 相同点 1.1 语法基础 JavaScript和ActionScript3都是基于ECMAScript语法的编程语言,两种语言拥有类似的语法、数据类型、变量、运算符和控制结构等基本组成部分。 1.2 可以浏览器和跨平台…

    JavaScript 1天前
    00
  • js对象合并的4种方式与数组合并的4种方式

    下面是对“js对象合并的4种方式与数组合并的4种方式”的详细讲解攻略: JS对象合并的4种方法 在JS中,有多种方法可以合并两个或多个对象,如下: 1. 手动遍历合并 这种方式是通过遍历对象中的属性并将其复制到另一个对象中来进行合并的,可以使用 for…in 循环或 Object.keys 方法获取要遍历的属性,示例如下: let obj1 = {a: …

    JavaScript 2天前
    00
  • js前端技巧之图片格式转换(File、Blob、base64)

    JS前端技巧之图片格式转换攻略 什么是图片格式转换? 图片格式转换是将一种图片格式转换成另一种图片格式的过程。在前端开发中,常见的图片格式有JPEG、PNG、GIF等。图片格式转换可以实现以下需求: 上传图片格式限制:例如要求用户上传的头像只能是JPEG格式。 图片压缩:将大尺寸的图片转换为小尺寸的图片,降低图片占用的存储空间和带宽资源。 图片处理:例如将图…

    JavaScript 2天前
    00
  • 一文带你玩转JavaScript的箭头函数

    一文带你玩转JavaScript的箭头函数 什么是箭头函数? 箭头函数是ES6引入的一种新的函数声明语法,它可以让我们更简洁地书写函数,并且可以解决一些this指向上的问题。 箭头函数与普通函数的区别在于箭头函数没有自己的this,它的this是词法作用域中的this,即在定义箭头函数时所处的上下文中的this。 箭头函数的基本语法 箭头函数有两种语法: 不…

    JavaScript 2天前
    00
  • 详解javascript跨浏览器事件处理程序

    首先让我们来详细讲解“详解JavaScript跨浏览器事件处理程序”的完整攻略。 1. 为什么需要跨浏览器事件处理程序? 在不同的浏览器中,事件处理程序(比如click、mouseover等等)的调用方式可能不一样,比如IE浏览器使用attachEvent来绑定事件,而其他浏览器(比如Firefox、Chrome等)则使用addEventListener来绑…

    JavaScript 1天前
    00
  • javascript比较两个日期相差天数的方法

    对于JavaScript来说,比较两个日期相差天数的方法可以使用以下两种方式: 方式一:使用Date对象获取时间戳进行计算 我们可以将两个日期转化为时间戳,然后计算它们之间相差的毫秒数,最后再将毫秒数换算成天数。 /** * 计算两个日期相差的天数 * @param {string} date1 日期1,格式为 yyyy-mm-dd * @param {st…

    JavaScript 1天前
    00
  • 35个JS中实用工具函数的代码分享

    标题:35个JS中实用工具函数的代码分享 介绍 本文将分享35个JS中实用工具函数的代码。这些函数可以被应用于日常开发中,提高开发和编码效率。在下面的内容中,每个函数均附带代码示例,帮助读者更好地理解和应用它们。 代码分享 函数 1:isArray 判断变量是否为数组。 function isArray (arr) { return Object.proto…

    JavaScript 2天前
    00
  • JS中常用的输出方式(五种)

    当我们在编写JavaScript代码时,需要将程序运行的结果在控制台或者网页上输出,此时就需要使用JavaScript提供的输出函数。JS中常用的输出方式有以下五种: 1. alert() 语法:alert(要输出的内容); 作用:在页面上弹出一个消息框,并在里面输出指定的内容。 示例: alert("您的操作有误,请重新输入!"); /…

    JavaScript 1天前
    00