日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

JavaScript 中有趣的九個(gè)常用編碼套路

來(lái)源: 責(zé)編: 時(shí)間:2023-08-14 22:01:17 425觀看
導(dǎo)讀這篇文章是面向新手的,但如果幸運(yùn)的話,希望能給各位大佬們帶來(lái)一些小小的啟發(fā)。1、set對(duì)象:數(shù)組快速去重常規(guī)情況下,我們想要篩選唯一值,一般會(huì)想到遍歷數(shù)組然后逐個(gè)對(duì)比,或者使用成熟的庫(kù)比如lodash之類的。不過,ES6帶來(lái)了

這篇文章是面向新手的,但如果幸運(yùn)的話,希望能給各位大佬們帶來(lái)一些小小的啟發(fā)。5it28資訊網(wǎng)——每日最新資訊28at.com

5it28資訊網(wǎng)——每日最新資訊28at.com

1、set對(duì)象:數(shù)組快速去重

常規(guī)情況下,我們想要篩選唯一值,一般會(huì)想到遍歷數(shù)組然后逐個(gè)對(duì)比,或者使用成熟的庫(kù)比如lodash之類的。5it28資訊網(wǎng)——每日最新資訊28at.com

不過,ES6帶來(lái)了一個(gè)新玩意兒!它引入了一個(gè)全新的對(duì)象類型:Set!而且,如果結(jié)合上...展開運(yùn)算符,我們可以超級(jí)快速地創(chuàng)建一個(gè)已經(jīng)去重的全新數(shù)組!5it28資訊網(wǎng)——每日最新資訊28at.com

const arr = [10, 10, 10, 20, 20, 30, 40, 40, 50, 60, 60, 70];const uniArr = [...new Set(array)];console.log(uniArr);// [10, 20, 30, 40, 50, 60, 70]

這個(gè)技巧只適用于包含基本類型的數(shù)組,比如undefined、null、boolean、string和number。5it28資訊網(wǎng)——每日最新資訊28at.com

但是要記住哦,如果數(shù)組里面還有對(duì)象、函數(shù)或其他數(shù)組的話,就不能用這個(gè)方法了!5it28資訊網(wǎng)——每日最新資訊28at.com

2、include方法:簡(jiǎn)化( || 或)條件判斷

當(dāng)我們使用邏輯運(yùn)算符||進(jìn)行條件判斷時(shí),如果有很多可選值,代碼會(huì)變得冗長(zhǎng)。5it28資訊網(wǎng)——每日最新資訊28at.com

不過,我們可以使用includes方法來(lái)簡(jiǎn)化對(duì)數(shù)組的遍歷操作,方便地判斷數(shù)組是否包含某個(gè)特定的元素。5it28資訊網(wǎng)——每日最新資訊28at.com

這樣一來(lái),我們就可以更簡(jiǎn)潔地列出可選值,而不必寫一長(zhǎng)串的條件判斷語(yǔ)句。includes方法可以幫助我們輕松判斷數(shù)組中是否存在指定的元素。5it28資訊網(wǎng)——每日最新資訊28at.com

const myNum = '3';const numArr = ['1', '2', '3'];// 使用 || if (myNum === '1' || myNum === '2' || myNum === '3') {    //……}// 使用 includeif (numArr.includes(myNum)) {    //……}

3、截?cái)鄶?shù)組:改變length就可以

操作數(shù)組時(shí),我們通常會(huì)優(yōu)先使用array對(duì)象中的高級(jí)函數(shù)。5it28資訊網(wǎng)——每日最新資訊28at.com

不過,我這里要介紹一種更簡(jiǎn)單的方法來(lái)改變數(shù)組長(zhǎng)度,我喜歡它的原因是它非常直觀且易讀。5it28資訊網(wǎng)——每日最新資訊28at.com

只需使用length屬性并傳遞一個(gè)數(shù)字,就可以改變數(shù)組的長(zhǎng)度。這樣做非常方便!5it28資訊網(wǎng)——每日最新資訊28at.com

let array = ['1', '2', '3', '4'];array.length = 2;console.log(array); // ['1', '2']

當(dāng)然 ,如果你更注重性能,還是請(qǐng)使用 array.slice()。5it28資訊網(wǎng)——每日最新資訊28at.com

4、數(shù)字分割符:提高數(shù)字可讀性

若要提高數(shù)字的可讀性,你可以使用下劃線作為分隔符來(lái)更好地區(qū)分?jǐn)?shù)字的各個(gè)部分。這樣做可以讓數(shù)字更易讀,讓人一目了然。5it28資訊網(wǎng)——每日最新資訊28at.com

const num = 1_000_000_000;console.log(num); // 1000000000

5、控制臺(tái)打?。河脤?duì)象包裹更清晰

在使用console.log()時(shí),你可以將參數(shù)括在大括號(hào)中,這樣可以在控制臺(tái)輸出時(shí)同時(shí)顯示變量的名稱和值。這種方式非常方便,讓你更清晰地了解每個(gè)變量的內(nèi)容。5it28資訊網(wǎng)——每日最新資訊28at.com

const name = "道長(zhǎng)王jj";console.log({ name });// {//     "name": "道長(zhǎng)王jj"http:// }

6、短路運(yùn)算:簡(jiǎn)化條件判斷

if...else條件判斷是代碼過程中最常用的,幾乎在任何情況下,我們都會(huì)快速地敲下它來(lái)控制邏輯流程。5it28資訊網(wǎng)——每日最新資訊28at.com

不過,有時(shí)候我們也希望代碼更加簡(jiǎn)潔、快速,不占那么多篇幅。我們想盡可能地簡(jiǎn)潔且快速,于是就會(huì)用到三元運(yùn)算符:5it28資訊網(wǎng)——每日最新資訊28at.com

const num = 75;const result1 = num > 100 ? '大于100' : '小于100';

但是我在這里并不是推薦使用“三元運(yùn)算”,其實(shí)有時(shí)候三元運(yùn)算符可能會(huì)讓代碼邏輯變得有點(diǎn)復(fù)雜哦!比如這樣:5it28資訊網(wǎng)——每日最新資訊28at.com

const result2 = num > 100 ? (num > 200 ? '大于200' : '介于100和200之間') : '小于100';

這個(gè)時(shí)候,使用 && 和 || 這類邏輯運(yùn)算符反而能更簡(jiǎn)潔的表達(dá)算式。5it28資訊網(wǎng)——每日最新資訊28at.com

舉個(gè)例子:5it28資訊網(wǎng)——每日最新資訊28at.com

// 假設(shè),我們有三個(gè)已經(jīng)打過分的相親對(duì)象必須選擇一個(gè)來(lái)當(dāng)女朋友,使用 `&&` 可以很好的幫我們做出選擇。const one = 8;const two = 9;const three = 10;// 返回10console.log(one && two && three); // 返回0console.log(0 && null);
// 當(dāng)然,如果你足夠獨(dú)特~~(變態(tài))~~,就是不要女朋友,如果選只選最差的,你可以使用 `||` 來(lái)幫你做吹選擇。const one = 8;const two = 9;const three = 10;// 返回8console.log(one || two || three); // 返回nullconsole.log(0 || null);

哦,這個(gè)情況在工作場(chǎng)景中確實(shí)很常見。5it28資訊網(wǎng)——每日最新資訊28at.com

假設(shè)我們想返回變量的 length ,但我們不確定接口會(huì)不會(huì)給我們需要的類型。5it28資訊網(wǎng)——每日最新資訊28at.com

這個(gè)時(shí)候我們就可以使用 if/else 語(yǔ)句來(lái)檢查是可接受的類型,但它會(huì)讓我們的代碼非常臃腫。5it28資訊網(wǎng)——每日最新資訊28at.com

這時(shí)候,我們可以使用短路運(yùn)算來(lái)簡(jiǎn)化代碼,而且有極高的健壯性:5it28資訊網(wǎng)——每日最新資訊28at.com

// 使用iflet temp = getArray();if (!temp) {    tempLength = 0;} else {    tempLength = temp.length}// 使用 ||// 如果變量 tempArray 為真,則將返回該變量。否則,將返回 []const temp = (tempArray || []).length;

7、可選鏈:更加安全地訪問對(duì)象屬性

你有沒有遇到過訪問嵌套對(duì)象屬性的困擾?5it28資訊網(wǎng)——每日最新資訊28at.com

就是有時(shí)候你根本不確定這個(gè)對(duì)象或者它的子屬性到底存不存在,結(jié)果就報(bào)錯(cuò)了!以至于程序崩潰無(wú)法運(yùn)行5it28資訊網(wǎng)——每日最新資訊28at.com

console.log(abc.ss)// ceError: abc is not defined//     at <anonymous>:1:1// (匿名) @ VM190795

為了不讓報(bào)錯(cuò)阻止我們的程序運(yùn)行,我們通常會(huì)將它包裝在一個(gè)if……else代碼塊中:5it28資訊網(wǎng)——每日最新資訊28at.com

if (abc.ss) {  console.log(abc.ss);} else {  console.log('沒有abc這個(gè)變量喏~');}// 還可以用短路運(yùn)算console.log(abc && abc.ss)

不過,ES6的可選鏈可以讓我們徹底拋棄掉上面的寫法了,我們可以直接這樣做:5it28資訊網(wǎng)——每日最新資訊28at.com

console.log(abc?.ss?.aa?.bb?.cc)

8、巧用運(yùn)算符:快速類型轉(zhuǎn)換

在這之前需要科普一些小知識(shí):5it28資訊網(wǎng)——每日最新資訊28at.com

除了常規(guī)的true和false之外,其他變量也可以被當(dāng)成true 或者 false。5it28資訊網(wǎng)——每日最新資訊28at.com

除了0、""(空字符串)、null、undefined、NaN、false 之外呢,JavaScript中的所有其他值都是"真的"哦!5it28資訊網(wǎng)——每日最新資訊28at.com

所以呢,基于這個(gè)認(rèn)知。5it28資訊網(wǎng)——每日最新資訊28at.com

我們可以使用負(fù)運(yùn)算符 ! ,將類型轉(zhuǎn)換為 "boolean" 。5it28資訊網(wǎng)——每日最新資訊28at.com

const x = Boolean(expression);     // 推薦const x = !!(expression);          // 推薦const x = new Boolean(expression); // 不太好

我們可以使用連接運(yùn)算符 + 后跟一組空引號(hào) '',將類型轉(zhuǎn)換為 "string" 。5it28資訊網(wǎng)——每日最新資訊28at.com

const value = 12 + '';console.log(value); // '12'

我們可以使用減法運(yùn)算符 -,將類型轉(zhuǎn)換為 "number" 。5it28資訊網(wǎng)——每日最新資訊28at.com

感謝 @hhhyyymmm 指正,我之前這里使用了加法運(yùn)算符。5it28資訊網(wǎng)——每日最新資訊28at.com

let myValue = '12';myValue = myValue - 1;console.log(myValue); // 11// 當(dāng)然也可以轉(zhuǎn)換 Boolean 變成 Number // 工作中不推薦這樣用!?。。onsole.log(+true); // 1console.log(+false); // 0

9、快速運(yùn)算:更快更簡(jiǎn)潔的數(shù)學(xué)運(yùn)算操作符

以前我們?cè)谑褂肑avaScript進(jìn)行數(shù)學(xué)運(yùn)算時(shí),總是要借助Math庫(kù)進(jìn)行運(yùn)算。很奇怪的是,但是很多教程并沒有提醒我們,ES7其實(shí)帶來(lái)的全新運(yùn)算符。5it28資訊網(wǎng)——每日最新資訊28at.com

如果想示乘方操作,通常我們會(huì)調(diào)用Math.pow(5, 7)這個(gè)方法。但是現(xiàn)在我們可以使用冪運(yùn)算符**了,而且性能更快更好。5it28資訊網(wǎng)——每日最新資訊28at.com

console.log(5 ** 7); // 78125

如果想將浮點(diǎn)數(shù)轉(zhuǎn)換為整數(shù),通常我們會(huì)使用Math.floor()、Math.ceil()或Math.round()這些方法。不過,其實(shí)可以使用 | 將浮點(diǎn)數(shù)直接截?cái)酁檎麛?shù)。這個(gè)技巧可以讓你的代碼更簡(jiǎn)潔高效哦!5it28資訊網(wǎng)——每日最新資訊28at.com

// 正數(shù),則向下舍入console.log(34.9 | 0);  // Result: 34// 負(fù)數(shù),則向上舍入console.log(-12.9 | 0); // Result: -12

以前我們只取千分位需要進(jìn)行類型轉(zhuǎn)換后才能進(jìn)行取數(shù)5it28資訊網(wǎng)——每日最新資訊28at.com

let str = "33545"; Number(str.substring(0, str.length - 3)); // 33

但是我們可以更優(yōu)雅地這樣做:5it28資訊網(wǎng)——每日最新資訊28at.com

console.log(33545 / 1000 | 0)  // Result: 33

希望本文能夠幫助到你, 雖然真的很基礎(chǔ)很基礎(chǔ)。5it28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-5725-0.htmlJavaScript 中有趣的九個(gè)常用編碼套路

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 什么是代碼審查及其如何節(jié)省時(shí)間:開發(fā)人員指南

下一篇: 面試官:JavaScript中“x !== x”可以返回True嗎?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 一加Ace2 Pro官宣:普及16G內(nèi)存 引領(lǐng)24G

    一加官方今天繼續(xù)為本月發(fā)布的新機(jī)一加Ace2 Pro帶來(lái)預(yù)熱,公布了內(nèi)存方面的信息?!疤蕴?8GB ,12GB 起步,16GB 普及,24GB 引領(lǐng),還有呢?#一加Ace2Pro#,2023 年 8 月,敬請(qǐng)期待。”同時(shí)
  • 小米官宣:2023年上半年出貨量中國(guó)第一!

    今日早間,小米電視官方微博帶來(lái)消息,稱2023年小米電視上半年出貨量達(dá)到了中國(guó)第一,同時(shí)還表示小米電視的巨屏風(fēng)暴即將開始?!肮家粋€(gè)好消息2023年#小米電視上半年出貨量中國(guó)
  • 摸魚心法第一章——和配置文件說(shuō)拜拜

    為了能摸魚我們團(tuán)隊(duì)做了容器化,但是帶來(lái)的問題是服務(wù)配置文件很麻煩,然后大家在群里進(jìn)行了“親切友好”的溝通圖片圖片圖片圖片對(duì)比就對(duì)比,簡(jiǎn)單對(duì)比下獨(dú)立配置中心和k8s作為配
  • 把LangChain跑起來(lái)的三個(gè)方法

    使用LangChain開發(fā)LLM應(yīng)用時(shí),需要機(jī)器進(jìn)行GLM部署,好多同學(xué)第一步就被勸退了,那么如何繞過這個(gè)步驟先學(xué)習(xí)LLM模型的應(yīng)用,對(duì)Langchain進(jìn)行快速上手?本片講解3個(gè)把LangChain跑起來(lái)
  • 如何通過Python線程池實(shí)現(xiàn)異步編程?

    線程池的概念和基本原理線程池是一種并發(fā)處理機(jī)制,它可以在程序啟動(dòng)時(shí)創(chuàng)建一組線程,并將它們置于等待任務(wù)的狀態(tài)。當(dāng)任務(wù)到達(dá)時(shí),線程池中的某個(gè)線程會(huì)被喚醒并執(zhí)行任務(wù),執(zhí)行完任
  • 一個(gè)注解實(shí)現(xiàn)接口冪等,這樣才優(yōu)雅!

    場(chǎng)景碼猿慢病云管理系統(tǒng)中其實(shí)高并發(fā)的場(chǎng)景不是很多,沒有必要每個(gè)接口都去考慮并發(fā)高的場(chǎng)景,比如添加住院患者的這個(gè)接口,具體的業(yè)務(wù)代碼就不貼了,業(yè)務(wù)偽代碼如下:圖片上述代碼有
  • 10天營(yíng)收超1億美元,《星鐵》比《原神》差在哪?

    來(lái)源:伯虎財(cái)經(jīng)作者:陳平安即便你沒玩過《原神》,你一定聽說(shuō)過的它的大名。恨它的人把《原神》開服那天稱作是中國(guó)游戲史上最黑暗的一天,有粉絲因?yàn)樗髂嵩赑S平臺(tái)上線《原神》,怒而
  • 超閉合精工鉸鏈 徹底消滅縫隙 三星Galaxy Z Flip5與Galaxy Z Fold5發(fā)布

    2023年7月26日,三星電子正式發(fā)布了Galaxy Z Flip5與Galaxy Z Fold5。三星新一代折疊屏手機(jī)采用超閉合精工鉸鏈,讓折疊后的縫隙不再可見。同時(shí),配合處
  • 電博會(huì)與軟博會(huì)實(shí)現(xiàn)"線下+云端"的雙線融合

    在本次“電博會(huì)”與“軟博會(huì)”雙展會(huì)利好條件的加持下,既可以發(fā)揮展會(huì)拉動(dòng)人流、信息流、資金流實(shí)現(xiàn)快速交互流動(dòng)的作用,繼而推動(dòng)區(qū)域經(jīng)濟(jì)良性發(fā)展;又可以聚
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
久久九九99| 一级日韩一区在线观看| 国产日韩欧美在线播放| 国产视频一区二区三区在线观看| 国产欧美一区二区精品仙草咪 | 欧美激情视频给我| 欧美激情一区在线| 国产精品毛片| 伊人春色精品| 一区二区三区精品在线| 久久成人免费日本黄色| 欧美成人午夜视频| 国产精品九九| 精品二区视频| 一区二区三区视频观看| 欧美中在线观看| 欧美精品999| 国产欧美欧美| 亚洲欧洲综合| 欧美一区二区在线看| 欧美成人黑人xx视频免费观看| 国产精品久久久久久久久久久久久久| 国产一区二区三区在线免费观看| 亚洲三级影片| 久久精品卡一| 欧美性猛交xxxx乱大交退制版| 激情欧美日韩| 亚洲影院色在线观看免费| 蜜桃av综合| 国产精品一区二区三区观看| 亚洲欧洲精品成人久久奇米网 | 久久精品欧美日韩| 欧美日韩在线播| 在线播放日韩| 午夜亚洲福利| 欧美日韩精品不卡| 揄拍成人国产精品视频| 亚洲欧美一级二级三级| 欧美了一区在线观看| 国内精品视频在线观看| 亚洲一区二区三区精品视频 | 欧美韩国在线| 国产在线一区二区三区四区| 亚洲视频免费在线观看| 蜜臀久久99精品久久久久久9| 国产欧美日韩中文字幕在线| 一区二区日韩免费看| 欧美va亚洲va国产综合| 国产在线一区二区三区四区 | 欧美一区二区高清在线观看| 欧美日韩一区三区| 亚洲黄色免费| 玖玖玖国产精品| 国产综合在线视频| 欧美一区1区三区3区公司| 欧美午夜在线视频| 日韩五码在线| 欧美黑人一区二区三区| 亚洲成色777777女色窝| 久久久久久久尹人综合网亚洲 | **欧美日韩vr在线| 久久精品视频在线| 国产亚洲高清视频| 亚洲欧美日韩成人| 国产精品久久久久久久7电影| 99国产精品视频免费观看| 欧美成人免费在线视频| 亚洲第一色在线| 裸体女人亚洲精品一区| 黄色成人免费网站| 久久久精品网| 国内一区二区在线视频观看| 久久国产视频网站| 国产一区免费视频| 久久国产欧美精品| 国产在线精品自拍| 久久久久久久精| 在线观看三级视频欧美| 久久亚裔精品欧美| 永久域名在线精品| 久久琪琪电影院| 有码中文亚洲精品| 女同性一区二区三区人了人一| 伊人精品在线| 免费观看不卡av| 91久久精品国产| 欧美华人在线视频| 一本色道久久综合亚洲91| 欧美日韩亚洲一区二| 亚洲无线视频| 国产精品三级久久久久久电影| 亚洲专区一二三| 国产人妖伪娘一区91| 欧美一区二区性| 精品动漫3d一区二区三区| 免费观看日韩| 亚洲开发第一视频在线播放| 欧美日韩国语| 亚洲欧美综合网| 国外精品视频| 欧美成人精品h版在线观看| 亚洲理论在线| 国产精品欧美久久| 久久久www成人免费毛片麻豆| 一区免费在线| 欧美激情精品久久久久久蜜臀| 亚洲作爱视频| 国产精品激情| 久久aⅴ国产欧美74aaa| 精品成人在线视频| 欧美日本久久| 亚洲一区免费| 国产亚洲精品久久久久久| 久久久91精品国产一区二区精品| 亚洲国产美国国产综合一区二区| 欧美日韩国产成人高清视频| 亚洲女人天堂av| 黄色成人在线观看| 欧美女主播在线| 午夜欧美大片免费观看| 影视先锋久久| 欧美日韩中文另类| 久久国产天堂福利天堂| 亚洲精品国产品国语在线app| 欧美特黄一级| 久久久精品国产免费观看同学| 亚洲精品国产精品久久清纯直播| 国产精品久久综合| 久久在线视频| 在线视频你懂得一区| 韩国精品一区二区三区| 欧美日韩不卡视频| 欧美一区二区在线观看| 最新国产の精品合集bt伙计| 国产精品免费一区二区三区在线观看 | 国产精品一区久久久| 美女精品在线| 亚洲制服欧美中文字幕中文字幕| 伊人久久婷婷| 国产精品乱码久久久久久| 噜噜噜91成人网| 先锋影音一区二区三区| 亚洲精品一区二区三区婷婷月 | 在线欧美影院| 国产精品免费小视频| 免费久久99精品国产自| 午夜精品福利一区二区三区av| 亚洲欧洲精品天堂一级| 国产欧美二区| 欧美日韩国产区| 久久免费精品视频| 亚洲在线播放电影| 亚洲欧洲精品一区二区三区| 国产欧美亚洲视频| 欧美欧美天天天天操| 久久久蜜臀国产一区二区| 亚洲一级黄色片| 亚洲日韩视频| 狠狠操狠狠色综合网| 国产精品日韩欧美大师| 欧美喷水视频| 久久久久久久一区| 午夜精品福利在线| 夜夜嗨av一区二区三区| 亚洲福利国产精品| 国产专区欧美专区| 国产精品视频区| 欧美日韩国产a| 欧美大成色www永久网站婷| 久久国产精品一区二区| 亚洲综合国产| 亚洲最黄网站| 日韩视频欧美视频| 亚洲国产另类久久久精品极度| 国内精品写真在线观看| 国产精品网站视频| 欧美体内she精视频在线观看| 欧美福利视频一区| 美女国产一区| 久久久天天操| 久久精品视频在线免费观看| 亚洲你懂的在线视频| 亚洲一区二区三区四区在线观看 | 亚洲卡通欧美制服中文| 在线观看一区二区视频| 韩日视频一区| 国产伊人精品| 国产亚洲欧美日韩精品| 国产欧美一级| 国产拍揄自揄精品视频麻豆| 国产精品亚洲片夜色在线| 欧美吻胸吃奶大尺度电影| 欧美日韩性生活视频| 欧美日韩不卡视频| 欧美日韩成人激情| 欧美人在线观看| 欧美啪啪成人vr| 欧美日韩黄视频| 欧美日韩亚洲一区三区| 欧美日韩免费一区二区三区视频| 欧美人与禽猛交乱配| 欧美日韩和欧美的一区二区| 欧美日韩另类一区| 欧美三区不卡|