国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

11個(gè)教程中不常被提及的JavaScript小技巧(推薦)

2024-05-06 15:40:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1、過(guò)濾唯一值

Set類(lèi)型是在ES6中新增的,它類(lèi)似于數(shù)組,但是成員的值都是唯一的,沒(méi)有重復(fù)的值。結(jié)合擴(kuò)展運(yùn)算符(...)我們可以創(chuàng)建一個(gè)新的數(shù)組,達(dá)到過(guò)濾原數(shù)組重復(fù)值的功能。

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

在ES6之前,我們?nèi)绻胍獙?shí)現(xiàn)這個(gè)功能的話,需要的處理代碼要多很多。
這個(gè)技巧的適用范圍是數(shù)組中的數(shù)值的類(lèi)型為:undefined, null, boolean, string, number。當(dāng)包涵object, function, array時(shí),則不適用。

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

三目運(yùn)算符是一個(gè)很方便快捷的書(shū)寫(xiě)一些簡(jiǎn)單的邏輯語(yǔ)句的方式,

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

但是有些時(shí)候當(dāng)邏輯復(fù)雜之后,三目運(yùn)算符書(shū)寫(xiě)起來(lái)可讀性也會(huì)很難。這個(gè)時(shí)候,我們就可以使用邏輯與(&&)和邏輯或(||)運(yùn)算符來(lái)改寫(xiě)我們的表達(dá)式。

邏輯與和邏輯或操作符總是先計(jì)算其做操作數(shù),只有在僅靠左操作數(shù)的值無(wú)法確定該邏輯表達(dá)式的結(jié)果時(shí),才會(huì)求解其右操作數(shù)。這被稱(chēng)為“短路求值(Short-Circuit Evaluation)”

工作原理

與(&&)運(yùn)算符將會(huì)返回第一個(gè)false/‘falsy'的值。當(dāng)所有的操作數(shù)都是true時(shí),將返回最后一個(gè)表達(dá)式的結(jié)果。

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

或(||)運(yùn)算符將返回第一個(gè)true/‘truthy'的值。當(dāng)所有的操作數(shù)都是false時(shí),將返回最后一個(gè)表達(dá)式的結(jié)果。

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

場(chǎng)景舉例

當(dāng)我們從服務(wù)器端請(qǐng)求數(shù)據(jù)的過(guò)程中,我們?cè)诹硪粋€(gè)位置來(lái)使用這個(gè)數(shù)據(jù),但是獲取數(shù)據(jù)的狀態(tài)并不知道,如我們?cè)L問(wèn)this.state的data屬性。按照常規(guī)的方式我們會(huì)先去判斷這個(gè)this.state.data的有效性,之后根據(jù)有效性情況分別進(jìn)行區(qū)分處理。

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

但是我們可以通過(guò)上面的方式來(lái)簡(jiǎn)寫(xiě)這個(gè)邏輯處理

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

對(duì)比發(fā)現(xiàn)這個(gè)方式更加的簡(jiǎn)潔方便。

3、轉(zhuǎn)換Boolean型

常規(guī)的boolean型值只有 true 和 false,但是在JavaScript中我們可以將其他的值認(rèn)為是 ‘truthy' 或者 ‘falsy'的。

除了0, “”, null, undefined, NaN 和 false,其他的我們都可以認(rèn)為是‘truthy'的。

我們可以通過(guò)負(fù)運(yùn)算符!將一系列的變量轉(zhuǎn)換成“boolean”型。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 渝中区| 社旗县| 彭阳县| 股票| 句容市| 澄江县| 略阳县| 綦江县| 荆门市| 宁波市| 隆安县| 平昌县| 手机| 盈江县| 桂平市| 垦利县| 建瓯市| 石楼县| 天水市| 黔西县| 乳山市| 观塘区| 朔州市| 廉江市| 汽车| 读书| 绩溪县| 鄢陵县| 祁连县| 同江市| 封开县| 凤阳县| 调兵山市| 萝北县| 芜湖县| 明星| 宿迁市| 浠水县| 沿河| 新干县| 无棣县|