首页 > 语言 > JavaScript > 正文

11个教程中不常被提及的JavaScript小技巧(推荐)

2024-05-06 15:40:27
字体:
来源:转载
供稿:网友

1、过滤唯一值

Set类型是在ES6中新增的,它类似于数组,但是成员的值都是唯一的,没有重复的值。结合扩展运算符(...)我们可以创建一个新的数组,达到过滤原数组重复值的功能。

const array = [1, 2, 3, 3, 5, 5, 1];const uniqueArray = [...new Set(array)];console.log(uniqueArray); // [1, 2, 3, 5]

在ES6之前,我们如果想要实现这个功能的话,需要的处理代码要多很多。
这个技巧的适用范围是数组中的数值的类型为:undefined, null, boolean, string, number。当包涵object, function, array时,则不适用。

2、短路求值(Short-Circuit Evaluation)

三目运算符是一个很方便快捷的书写一些简单的逻辑语句的方式,

x > 100 ? 'Above 100' : 'Below 100';x > 100 ? (x > 200 ? 'Above 200' : 'Between 100-200') : 'Below 100';

但是有些时候当逻辑复杂之后,三目运算符书写起来可读性也会很难。这个时候,我们就可以使用逻辑与(&&)和逻辑或(||)运算符来改写我们的表达式。

逻辑与和逻辑或操作符总是先计算其做操作数,只有在仅靠左操作数的值无法确定该逻辑表达式的结果时,才会求解其右操作数。这被称为“短路求值(Short-Circuit Evaluation)”

工作原理

与(&&)运算符将会返回第一个false/‘falsy'的值。当所有的操作数都是true时,将返回最后一个表达式的结果。

let one = 1, two = 2, three = 3;console.log(one && two && three); // Result: 3console.log(0 && null); // Result: 0

或(||)运算符将返回第一个true/‘truthy'的值。当所有的操作数都是false时,将返回最后一个表达式的结果。

let one = 1, two = 2, three = 3;console.log(one || two || three); // Result: 1console.log(0 || null); // Result: null

场景举例

当我们从服务器端请求数据的过程中,我们在另一个位置来使用这个数据,但是获取数据的状态并不知道,如我们访问this.state的data属性。按照常规的方式我们会先去判断这个this.state.data的有效性,之后根据有效性情况分别进行区分处理。

if (this.state.data) { return this.state.data;} else { return 'Fetching Data';}

但是我们可以通过上面的方式来简写这个逻辑处理

return (this.state.data || 'Fetching Data');

对比发现这个方式更加的简洁方便。

3、转换Boolean型

常规的boolean型值只有 true 和 false,但是在JavaScript中我们可以将其他的值认为是 ‘truthy' 或者 ‘falsy'的。

除了0, “”, null, undefined, NaN 和 false,其他的我们都可以认为是‘truthy'的。

我们可以通过负运算符!将一系列的变量转换成“boolean”型。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选