原文地址: 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 文档中可以了解更多。
最终,我们得到了一个没有重复数据的数组。