ES6实用技巧:数组去重、过滤与参数处理

作者:半夏

时间:2026-10-23

浏览:565

本文总结了ES6中七个实用技巧,包括利用Set进行数组去重、通过Boolean过滤假值、使用Object.create创建纯净对象、扩展运算符合并对象、默认参数实现必填校验、解构赋值别名以及使用URLSearchParams处理查询参数。这些方法能显著提升代码简洁性与可读性。

文章目录

前言

ES6发布已有数年,其众多新特性已在实际项目中得到巧妙应用。本文旨在梳理其中部分实用技巧,希望能为读者提供帮助。

若您掌握其他相关技巧,欢迎在评论区留言补充,我们将整理纳入。

ES6实用技巧汇总

es6有用的7个技巧

数组去重

数组去重


var arr = [1, 2, 3, 3, 4];
console.log(...new Set(arr))
>> [1, 2, 3, 4]

过滤数组假值

利用Set数据结构实现数组去重。

有时需要过滤数组中值为 false 的元素,例如 (0, undefined, null, false)。您可能尚未掌握这一简便技巧。


var myArray = [1, 0 , undefined, null, false];
myArray.filter(Boolean);
> > [1]
//是不是很简单, 只需要传入一个 Boolean 函数即可.

创建纯净空对象

创建一个空对象

有时需要创建一个纯净对象,不包含原型链等属性。通常直接通过字面量 {} 创建空对象,但该对象仍保留指向 Object.prototype 的 proto 属性。


let dict = Object.create(null);
 
dict.__proto__ === "undefined" 

合并多个对象

合并对象

在JavaScript开发中,合并多个对象的需求十分常见,例如在传递参数时,需将表单参数与分页参数合并后传递给后端接口。


const page = {
 current: 1,
 pageSize: 10
}
 
const form = {
 name: "",
 sex: ""
}
 
const params = {...form, ...page};
 
/*
 {
  name: "",
  sex: "",
  current: 1,
  pageSize: 10
 }
*

利用ES6提供的扩展运算符,对象合并操作变得极为简便。

强制函数参数

函数参数必须

ES6允许为参数指定默认值,这带来了诸多便利。若需检测某些参数为必传项,可采用如下方式实现。


const isRequired = () => { throw new Error('param is required'); };
 
const hello = (name = isRequired()) => { console.log(`hello ${name}`) };
 
// 这里将抛出一个错误,因为名字时必须
hello();
// 这也将抛出一个错误
hello(undefined);
 
// 正常
hello(null);
hello('David'); 

解构赋值别名

解构赋值时使用别名

解构赋值是JavaScript中广受欢迎的功能,但有时我们希望使用其他名称引用这些属性,此时可利用别名机制完成。


const obj = { x: 1 };
 
// Grabs obj.x as { x }
const { x } = obj;
 
// Grabs obj.x as { otherName }
const { x: otherName } = obj;

获取URL查询参数

获取查询参数

多年来,我们常编写复杂的正则表达式来获取查询字符串值,但此类繁琐操作已成为历史;如今可通过 URLSearchParams API 便捷地获取查询参数。

在不使用 URLSearchParams 的情况下,我们曾通过正则方式完成查询参数获取,具体实现如下。


 function getQueryString(name) {
 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
 var r = window.location.search.substr(1).match(reg);
 return r ? r[2] : null;
 }

使用 URLSearchParams 之后的效果。


// 假设地址栏中查询参数是这样 "?post=1234&action=edit"
 
var urlParams = new URLSearchParams(window.location.search);
 
console.log(urlParams.has('post')); // true
console.log(urlParams.get('action')); // "edit"
console.log(urlParams.getAll('action')); // ["edit"]
console.log(urlParams.toString()); // "?post=1234&action=edit"
console.log(urlParams.append('active', '1')); // "?post=1234&action=edit&active=1"

相比之前的正则方式,现在的实现更加简便易用。

总结

以上即为本文的全部内容,希望这些技巧对您的学习或工作具有参考价值。感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章