国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区

當前位置:首頁 > 科技  > 軟件

JavaScript 中有趣的九個常用編碼套路

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

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

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

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

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

不過,ES6帶來了一個新玩意兒!它引入了一個全新的對象類型:Set!而且,如果結合上...展開運算符,我們可以超級快速地創(chuàng)建一個已經(jīng)去重的全新數(shù)組!a2J28資訊網(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]

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

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

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

當我們使用邏輯運算符||進行條件判斷時,如果有很多可選值,代碼會變得冗長。a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

3、截斷數(shù)組:改變length就可以

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

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

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

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

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

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

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

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

5、控制臺打印:用對象包裹更清晰

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

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

6、短路運算:簡化條件判斷

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

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

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

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

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

這個時候,使用 && 和 || 這類邏輯運算符反而能更簡潔的表達算式。a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

這個時候我們就可以使用 if/else 語句來檢查是可接受的類型,但它會讓我們的代碼非常臃腫。a2J28資訊網(wǎng)——每日最新資訊28at.com

這時候,我們可以使用短路運算來簡化代碼,而且有極高的健壯性:a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

就是有時候你根本不確定這個對象或者它的子屬性到底存不存在,結果就報錯了!以至于程序崩潰無法運行a2J28資訊網(wǎng)——每日最新資訊28at.com

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

為了不讓報錯阻止我們的程序運行,我們通常會將它包裝在一個if……else代碼塊中:a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

8、巧用運算符:快速類型轉換

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

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

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

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

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

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

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

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

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

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

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

9、快速運算:更快更簡潔的數(shù)學運算操作符

以前我們在使用JavaScript進行數(shù)學運算時,總是要借助Math庫進行運算。很奇怪的是,但是很多教程并沒有提醒我們,ES7其實帶來的全新運算符。a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

如果想將浮點數(shù)轉換為整數(shù),通常我們會使用Math.floor()、Math.ceil()或Math.round()這些方法。不過,其實可以使用 | 將浮點數(shù)直接截斷為整數(shù)。這個技巧可以讓你的代碼更簡潔高效哦!a2J28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據(jù)今天鴻蒙OS 4.0的現(xiàn)場演示顯示,華為的實況窗可以更高效的展現(xiàn)出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網(wǎng)課,網(wǎng)課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業(yè)又有了新的發(fā)展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業(yè)務中需要進行各種審批流程時,可能會面臨一系列技術和業(yè)務上的挑戰(zhàn)。手動處理這些審批流程可能會導致開發(fā)成本的增加以及業(yè)務復雜度的上升。在這
  • Python異步IO編程的進程/線程通信實現(xiàn)

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現(xiàn)方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 雅柏威士忌多款單品價格大跌,泥煤頂流也不香了?

    來源 | 烈酒商業(yè)觀察編 | 肖海林今年以來,威士忌市場開始出現(xiàn)了降溫跡象,越來越多不斷暴漲的網(wǎng)紅威士忌也開始悄然回歸市場理性。近日,LVMH集團旗下蘇格蘭威士忌品牌雅柏(Ardbeg
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 7月4日見!iQOO 11S官宣:“雞血版”驍龍8 Gen2+200W快充加持

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數(shù)亮相,而下半年即將推出的頂級旗艦已經(jīng)成為了數(shù)碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
Top 国产精品嫩草99av在线_一区在线视频观看_欧美高清一区_欧美 日韩 国产 一区_99精品欧美一区二区三区_久久大香伊蕉在人线观看热2_一色屋精品视频在线观看网站_在线亚洲国产精品网站_亚洲区一区二区三区_你懂的视频一区二区
色偷偷一区二区三区| 欧美成人国产| 日韩五码在线| 欧美日韩视频第一区| 久久中文字幕电影| 一区二区久久久久| 理论电影国产精品| 欧美精品国产一区| 正在播放亚洲一区| 亚洲女性喷水在线观看一区| 另类专区欧美蜜桃臀第一页| 久久久精品中文字幕麻豆发布| 韩日成人在线| 7777精品伊人久久久大香线蕉的| 日本一二三不卡| 国产精品123区| 久久aⅴ国产紧身牛仔裤| 国产视频一区在线播放| 精品一区二区三区在线观看| 99在线|亚洲一区二区| 日韩视频在线一区二区| 日韩精品乱码免费| 亚洲区一区二| 国产精品国产三级国产普通话99| 国产精品一区二区三区乱码| 91成人免费网站| 欧美mv和日韩mv的网站| 久久免费偷拍视频| 成人av免费在线| 久久综合久久久久88| 成人黄色av网站在线| 精品少妇一区二区三区视频免付费| 国产成人8x视频一区二区| 欧美大片一区二区| 99视频超级精品| 欧美α欧美αv大片| 国产一区二区精品久久| 日韩欧美一级特黄在线播放| 成人a免费在线看| 国产精品女同互慰在线看| 99精品99| 久久国产综合精品| 久久色在线视频| 欧美丰满少妇xxxbbb| 国产剧情在线观看一区二区| 精品剧情v国产在线观看在线| 91免费视频观看| 国产精品久久午夜| 美日韩免费视频| 国产精品一区二区三区网站| 久久精品一区四区| 国产亚洲二区| 捆绑变态av一区二区三区| 91精品国产色综合久久 | 国产片一区二区| 99热这里只有成人精品国产| 日本午夜一区二区| 久久在线观看免费| 色94色欧美sute亚洲线路一久 | 日本在线不卡一区| 欧美一激情一区二区三区| 欧美日韩在线不卡一区| 麻豆国产欧美一区二区三区| 欧美成人性福生活免费看| 国内精品久久久久久久97牛牛 | 欧美福利网址| 成人一道本在线| 91在线无精精品入口| 亚洲精品视频在线| 欧美在线色视频| 国产精品s色| 国产美女一区二区| 亚洲色图第一区| 精品国产三级a在线观看| 一区二区三区久久网| 91一区在线观看| 久久精品国产99| 天天综合色天天| 亚洲精品国产无天堂网2021| 日韩欧美一二三区| 性xx色xx综合久久久xx| 91视频com| 色婷婷国产精品综合在线观看| 狠狠网亚洲精品| 亚洲高清二区| 高清av一区二区| 国产欧美一区在线| 日韩一区二区麻豆国产| 99riav国产精品| 狠狠色丁香婷婷综合| 亚洲一区在线免费观看| 性久久久久久久久| 看片的网站亚洲| 成人av资源下载| 国产精品996| 成人一区二区在线观看| 国产一区二区三区美女| 日本不卡123| 日韩av二区在线播放| 欧美日韩中文精品| 爽好多水快深点欧美视频| 一区二区三区在线影院| 自拍偷拍亚洲激情| 国产精品国产三级国产有无不卡| 久久精品夜色噜噜亚洲aⅴ| 国产三级精品在线| 久久精品日产第一区二区三区高清版 | 久久久国产午夜精品| 日韩西西人体444www| 欧美一级生活片| 久久综合一区二区| 欧美激情综合五月色丁香小说| 欧美成人乱码一区二区三区| 精品国产乱码久久久久久久久| 91麻豆精品国产自产在线 | 欧美日本一道本在线视频| 亚洲激情六月丁香| 亚洲一区二区美女| 91视频免费看| 国产精品日本欧美一区二区三区| 国产毛片一区| 欧美三级电影在线观看| 在线不卡中文字幕| 久久精品一二三| 美女免费视频一区二区| 成人丝袜18视频在线观看| 韩国精品一区二区三区| 国产亚洲精品资源在线26u| 欧美国产禁国产网站cc| 一区二区三区丝袜| 亚洲欧美在线网| 视频在线在亚洲| 国产成人无遮挡在线视频| 色综合中文字幕| 久久精品123| 欧美精品一区二区三区视频| 亚洲精品国产视频| 久久精品国产99国产| 欧美另类一区| 欧美日韩亚州综合| 国产精品入口麻豆原神| 日韩激情视频网站| 96av麻豆蜜桃一区二区| 性欧美暴力猛交另类hd| 欧美tickling挠脚心丨vk| 亚洲一区二区免费视频| www.欧美日韩国产在线| 色综合久久九月婷婷色综合| 国产情人综合久久777777| 久久成人久久爱| 午夜在线一区二区| 中文字幕乱码久久午夜不卡| 久久www免费人成看片高清| 亚洲欧洲一区二区天堂久久| 欧美一区二区成人| 另类中文字幕网| 国产精品毛片va一区二区三区| 久久免费美女视频| 国产高清不卡二三区| 蜜桃av综合| 亚洲一线二线三线久久久| 欧美日韩亚洲一区在线观看| 99久久精品国产毛片| 欧美精品 国产精品| 久久精品二区亚洲w码| 亚洲一区国产一区| 亚洲乱码一区二区三区在线观看| 99久久er热在这里只有精品15| 欧美高清视频不卡网| 久久精品国产在热久久| 91国产成人在线| 美女性感视频久久| 欧美视频在线一区| 玖玖九九国产精品| 欧美视频在线观看一区二区| 日精品一区二区三区| 亚洲永久免费精品| 日本不卡一区二区三区高清视频| 国产精品亚洲不卡a| 香蕉成人伊视频在线观看| 久久久久久色| 精品一区二区综合| 精品日本一线二线三线不卡| 欧美一区91| 一区二区欧美在线观看| 色综合 综合色| 黑人巨大精品欧美一区| 欧美成人女星排行榜| 欧美日韩国产不卡在线看| 一区二区三区日韩精品视频| 色综合久久久久综合体桃花网| 久久国产剧场电影| 精品国产成人在线影院| 亚洲欧洲日本mm| 奇米色777欧美一区二区| 日韩欧美在线观看一区二区三区| 99久久精品免费看国产| 亚洲国产日韩精品| 欧美理论在线播放| 黄色日韩精品|