一些有用的 JavaScript 技巧

284 阅读2分钟

原文地址: medium.com/developers-…
译文地址:github.com/xiao-T/note…
本文版权归原作者所有,翻译仅用于学习。


这篇文章中,我将会介绍一些非常有用的 JavaScript 小技巧,希望对你以后的编码有帮助。

技巧1

验证一个变量是原始类型,还是非原始类型

JavaScript 中的数据类型包括:原始类型和非原始类型。原始类型又包括:boolean、string、number、BigInt、null、Symbol 和 undefined。非原始类型包括:Object。

通常,我们需要验证变量中存储的数据类型是什么 — 原始类型还是非原始类型?

看一下这个变量

var val; // contains either primitive or non-primitive value

验证数据类型可以通过以下的代码实现。

function isPrimitive(val) {
    return Object(val) !== val;
}

我们利用构造函数 Object 来包装变量生成一个新的对象。

如果,这个值是原始类型,构造函数 Object 就会创建一个新的对象。

如果,这个值是非原始类型(一个对象),构造函数 Object 就会返回同一个对象。

因此,一个严格的比较(!== 或者 ===)可以帮助我们来验证一个变量是原始类型还是非原始类型。

技巧2

创建纯对象

在创建纯对象之前,我们需要先理解*“什么是纯对象?”*

JavaScript 中一个纯对象意味着,它的原型链上不能包含任何的方法。

创建对象的语法如下:

var obj = {};

通过检查 obj.__proto__ 我们发现它有很多的方法。

如果,我们想创建一个原型链上没有任何方法的对象应该如何做呢?

我们可以通过构造函数 Object 中的 create 方法来实现。

var obj = Object.create(null);

检查它的原型链,我们会发现以下的结果

一个没有任何原型的对象

因此,我们创建了一个纯对象。

技巧3

移除数组中重复的数据

看一下这个数组

var arr = [1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 7, 7];

我们看到数组中存在多个重复的数据。为了从数组中移除这些重复的数据,我们可以使用 Set

Set 对象只允许存储具有唯一性的值。Set 对象中不会有重复的值存在。MDN Web 文档中可以了解更多的相关内容。

用以下代码,我们就可以移除数组中重复的数据

const newArr = [...new Set(arr)];

首先,我们用数组作为参数创建了一个 Set 对象,然后,用 Spread 语法生成新的数组。

... 是 JavaScript 中展开操作符。在MDN Web 文档中可以了解更多。

最终,我们得到了一个没有重复数据的数组。