精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

11 種在大多數教程中找不到的JavaScript技巧

開發 前端
Set對象類型是在ES6中引入的,配合展開操作...一起,我們可以使用它來創建一個新數組,該數組只有唯一的值。

[[284372]]

 1..過濾唯一值

Set對象類型是在ES6中引入的,配合展開操作...一起,我們可以使用它來創建一個新數組,該數組只有唯一的值。

 

11 種在大多數教程中找不到的JavaScript技巧

 

在ES6之前,隔離惟一值將涉及比這多得多的代碼。

此技巧適用于包含基本類型的數組:undefined,null,boolean,string和number。 (如果你有一個包含對象,函數或其他數組的數組,你需要一個不同的方法!)

2. 與或運算

三元運算符是編寫簡單(有時不那么簡單)條件語句的快速方法,如下所示:

 

11 種在大多數教程中找不到的JavaScript技巧

 

但有時使用三元運算符處理也會很復雜。 相反,我們可以使用'與'&&和'或'|| 邏輯運算符以更簡潔的方式書寫表達式。 這通常被稱為“短路”或“短路運算”。

它是怎么工作的

假設我們只想返回兩個或多個選項中的一個。

使用&&將返回第一個條件為假的值。如果每個操作數的計算值都為true,則返回最后一個計算過的表達式。

 

11 種在大多數教程中找不到的JavaScript技巧

 

使用||將返回第一個條件為真的值。如果每個操作數的計算結果都為false,則返回最后一個計算過的表達式。

 

11 種在大多數教程中找不到的JavaScript技巧

 

例一

假設我們想返回一個變量的長度,但是我們不知道變量的類型。

我們可以使用if/else語句來檢查foo是可接受的類型,但是這可能會變得非常冗長。或運行可以幫助我們簡化操作:

 

  1. return (foo || []).length 

如果變量foo是true,它將被返回。否則,將返回空數組的長度:0。

例二

你是否遇到過訪問嵌套對象屬性的問題? 你可能不知道對象或其中一個子屬性是否存在,這可能會導致令人沮喪的錯誤。

假設我們想在this.state中訪問一個名為data的屬性,但是在我們的程序成功返回一個獲取請求之前,data 是未定義的。

根據我們使用它的位置,調用this.state.data可能會阻止我們的應用程序運行。 為了解決這個問題,我們可以將其做進一步的判斷:

 

  1. if (this.state.data) { 
  2.  return this.state.data; 
  3. else { 
  4.  return 'Fetching Data'

但這似乎很重復。 '或' 運算符提供了更簡潔的解決方案:

 

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

一個新特性: Optional Chaining

過去在 Object 屬性鏈的調用中,很容易因為某個屬性不存在而導致之后出現Cannot read property xxx of undefined的錯誤。

那 optional chaining 就是添加了?.這么個操作符,它會先判斷前面的值,如果是 null 或 undefined,就結束調用、返回 undefined。

例如,我們可以將上面的示例重構為 this.state.data?.()。或者,如果我們主要關注state 是否已定義,我們可以返回this.state?.data。

該提案目前處于第1階段,作為一項實驗性功能。 你可以在這里閱讀它,你現在可以通過Babel使用你的JavaScript,將 @babel/plugin-proposal-optional-chaining添加到你的.babelrc文件中。

3.轉換為布爾值

除了常規的布爾值true和false之外,JavaScript還將所有其他值視為 ‘truthy’或‘falsy’。

除非另有定義,否則 JavaScript 中的所有值都是'truthy',除了 0,“”,null,undefined,NaN,當然還有false,這些都是'falsy'

我們可以通過使用負算運算符輕松地在true和false之間切換。它也會將類型轉換為“boolean”。

 

11 種在大多數教程中找不到的JavaScript技巧

 

4. 轉換為字符串

要快速地將數字轉換為字符串,我們可以使用連接運算符+后跟一組空引號""。

 

11 種在大多數教程中找不到的JavaScript技巧

 

5. 轉換為數字

使用加法運算符+可以快速實現相反的效果。

 

11 種在大多數教程中找不到的JavaScript技巧

 

這也可以用于將布爾值轉換為數字,如下所示

 

  1. console.log(+true); // Return: 1 
  2. console.log(+false); // Return: 0 

在某些上下文中,+將被解釋為連接操作符,而不是加法操作符。當這種情況發生時(你希望返回一個整數,而不是浮點數),您可以使用兩個波浪號:~~。

連續使用兩個波浪有效地否定了操作,因為— ( — n — 1) — 1 = n + 1 — 1 = n。 換句話說,~—16 等于15。

 

  1. const int = ~~"15" 
  2. console.log(int); // Result: 15 
  3. console.log(typeof int); Result: "number" 

雖然我想不出很多用例,但是按位NOT運算符也可以用在布爾值上:~true = -2和~false = -1。

6.性能更好的運算

從ES7開始,可以使用指數運算符**作為冪的簡寫,這比編寫Math.pow(2, 3) 更快。 這是很簡單的東西,但它之所以出現在列表中,是因為沒有多少教程更新過這個操作符。

 

  1. console.log(2 ** 3); // Result: 8 

這不應該與通常用于表示指數的^符號相混淆,但在JavaScript中它是按位異或運算符。

在ES7之前,只有以2為基數的冪才存在簡寫,使用按位左移操作符<<

 

  1. Math.pow(2, n); 
  2. 2 << (n - 1); 
  3. 2**n; 

例如,2 << 3 = 16等于2 ** 4 = 16。

7. 快速浮點數轉整數

如果希望將浮點數轉換為整數,可以使用Math.floor()、Math.ceil()或Math.round()。但是還有一種更快的方法可以使用|(位或運算符)將浮點數截斷為整數。

 

  1. console.log(23.9 | 0); // Result: 23 
  2. console.log(-23.9 | 0); // Result: -23 

|的行為取決于處理的是正數還是負數,所以最好只在確定的情況下使用這個快捷方式。

如果n為正,則n | 0有效地向下舍入。 如果n為負數,則有效地向上舍入。 更準確地說,此操作將刪除小數點后面的任何內容,將浮點數截斷為整數。

你可以使用~~來獲得相同的舍入效果,如上所述,實際上任何位操作符都會強制浮點數為整數。這些特殊操作之所以有效,是因為一旦強制為整數,值就保持不變。

刪除最后一個數字

按位或運算符還可以用于從整數的末尾刪除任意數量的數字。這意味著我們不需要使用這樣的代碼來在類型之間進行轉換。

 

  1. let str = "1553";  
  2. Number(str.substring(0, str.length - 1)); 

相反,按位或運算符可以這樣寫:

 

  1. console.log(1553 / 10 | 0) // Result: 155 
  2. console.log(1553 / 100 | 0) // Result: 15 
  3. console.log(1553 / 1000 | 0) // Result: 1 

8. 類中的自動綁定

我們可以在類方法中使用ES6箭頭表示法,并且通過這樣做可以隱含綁定。 這通常會在我們的類構造函數中保存幾行代碼,我們可以愉快地告別重復的表達式,例如this.myMethod = this.myMethod.bind(this)

 

11 種在大多數教程中找不到的JavaScript技巧

 

9. 數組截斷

如果要從數組的末尾刪除值,有比使用splice()更快的方法。

例如,如果你知道原始數組的大小,您可以重新定義它的length屬性,就像這樣

 

  1. let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 
  2. array.length = 4; 
  3. console.log(array); // Result: [0, 1, 2, 3] 

這是一個特別簡潔的解決方案。但是,我發現slice()方法的運行時更快。如果速度是你的主要目標,考慮使用:

 

  1. let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 
  2. array = array.slice(0, 4); 
  3. console.log(array); // Result: [0, 1, 2, 3] 

10. 獲取數組中的最后一項

數組方法slice()可以接受負整數,如果提供它,它將接受數組末尾的值,而不是數組開頭的值。

 

  1. let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 
  2. console.log(array.slice(-1)); // Result: [9] 
  3. console.log(array.slice(-2)); // Result: [8, 9] 
  4. console.log(array.slice(-3)); // Result: [7, 8, 9] 

11.格式化JSON代碼

最后,你之前可能已經使用過JSON.stringify,但是您是否意識到它還可以幫助你縮進JSON?

stringify()方法有兩個可選參數:一個replacer函數,可用于過濾顯示的JSON和一個空格值。

 

  1. console.log(JSON.stringify({ alpha: 'A', beta: 'B' }, null'\t')); 
  2. // Result: 
  3. // '{ 
  4. // "alpha": A, 
  5. // "beta": B 
  6. // }' 

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2016-10-26 09:42:13

2016-11-13 19:51:16

2009-07-14 15:39:34

Swing大多數控件

2025-07-07 00:00:00

MCPA2AAPI

2011-05-26 10:50:31

2024-07-04 15:47:28

2014-01-02 10:34:54

設計設計師

2020-08-25 19:18:23

自動駕駛人工智能AI

2025-03-20 13:25:36

2021-09-17 16:00:33

Windows 11微軟虛擬機

2023-10-13 10:36:09

物聯網智能建筑

2020-07-05 08:01:44

SOC威脅檢測漏洞

2019-12-13 17:29:50

物聯網大數據安全

2013-03-28 10:01:50

云計算

2023-05-28 23:23:44

2024-08-20 15:23:27

JavaScript開發

2012-12-19 10:07:18

2022-06-10 10:19:15

路由器漏洞

2023-02-27 15:44:17

Java開發技巧

2012-06-17 13:14:29

創業創業公司信息圖
點贊
收藏

51CTO技術棧公眾號

天堂8中文在线| 亚洲国产综合久久| 狂野欧美xxxx韩国少妇| 午夜久久久影院| 成人免费视频入口| 怡红院在线播放| av电影天堂一区二区在线观看| 国产成人啪精品视频免费网| 欧美精品久久久久久久久46p| 成人av综合网| 91福利国产精品| 久久久天堂国产精品| 亚洲av无码一区二区乱子伦| 亚洲尤物精选| 欧美激情奇米色| 色屁屁草草影院ccyy.com| 综合欧美亚洲| 欧美日韩国产一级片| 无码中文字幕色专区| 欧美成人三区| 久久久久国产一区二区三区四区 | 久久狠狠亚洲综合| 91精品国产色综合久久不卡98| 日本裸体美女视频| 九九亚洲精品| 日韩电影网在线| 日本美女久久久| 成人亚洲欧美| 婷婷一区二区三区| 国产精品igao激情视频| 五月婷婷在线视频| 国产日韩欧美激情| 久久久婷婷一区二区三区不卡| 国产富婆一级全黄大片| 久久激情五月激情| 国产欧美日韩中文字幕| 国产91国语对白在线| 日韩亚洲在线| 韩国一区二区电影| 精品少妇一二三区| 欧美网站在线| 欧美成人在线网站| 欧美爱爱免费视频| 天天综合一区| 啊v视频在线一区二区三区| 中出视频在线观看| 任你躁在线精品免费| 欧美精品一区男女天堂| 欧美激情一区二区三区p站| 国内精品视频| 欧美一级理论性理论a| 亚洲黄色av片| 高清在线一区二区| 欧美一区二区三区在线观看| 日韩成人av免费| 国产精品3区| 日韩欧美黄色影院| 午夜性福利视频| 国产成人福利av| 亚洲高清免费观看高清完整版| 日本性生活一级片| 日韩精品免费一区二区夜夜嗨| 亚洲国产成人精品电影| 女同性恋一区二区三区| 日韩系列在线| 亚洲欧美中文日韩在线v日本| 久久国产精品影院| 国产日产精品_国产精品毛片| 亚洲女人天堂视频| 欧美性生活久久| 国产视频99| 少妇高潮久久久| 91蜜桃免费观看视频| 欧美午夜视频在线| 在线免费av网站| 亚洲色图20p| 精品无码国产一区二区三区av| 国产伦久视频在线观看| 色猫猫国产区一区二在线视频| 欧美一级裸体视频| 日韩美香港a一级毛片| 欧美一区二区在线看| 黄色av电影网站| 欧美欧美黄在线二区| 色婷婷**av毛片一区| 在线看的片片片免费| 亚洲国产日本| 国产成人激情视频| www.中文字幕| 久久日韩精品一区二区五区| 亚洲最新在线| 91福利在线免费| 欧美图区在线视频| 91精品又粗又猛又爽| 久久av导航| 欧美久久精品一级黑人c片| 在线观看精品国产| 精品一区二区三区免费视频| 国产福利久久精品| 99reav在线| 图片区日韩欧美亚洲| www.久久av.com| 欧美激情网址| 久久精品视频在线观看| 成人午夜视频在线播放| 国产酒店精品激情| 日韩一二三区不卡在线视频| 免费影视亚洲| 欧美日韩免费一区二区三区视频 | 成人午夜精品一区二区三区| 深夜福利成人| av免费在线视| 欧美精品一卡两卡| 91l九色lporny| 亚洲精品孕妇| 91成人免费观看| 川上优的av在线一区二区| 亚洲成a人v欧美综合天堂| www.久久av.com| av资源久久| 青青草原成人在线视频| 亚洲精品97久久中文字幕| 国产精品美女久久久久久久久 | 国产精品 欧美激情| 日韩在线观看一区二区| 精品久久蜜桃| 波多野结衣乳巨码无在线观看| 在线不卡a资源高清| 亚洲欧美va天堂人熟伦| 欧美一级二区| 久久av二区| 国产美女精品写真福利视频| 日韩精品一区二区三区四区视频| 日韩一级片大全| 久久精品av麻豆的观看方式| 五月天久久狠狠| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲国产精品成人av| 麻豆视频在线免费看| 久久激情五月激情| 色呦呦网站入口| 国产电影一区二区| 麻豆乱码国产一区二区三区| 国产精品久久久国产盗摄| 国产精品久久久久精k8| 亚洲天堂2018av| 欧美www视频在线观看| 91精品久久久久久综合乱菊| 求av网址在线观看| 欧美精品一二三区| 在线观看美女av| 国产成人无遮挡在线视频| 人人妻人人澡人人爽欧美一区| 涩爱av色老久久精品偷偷鲁| 欧美美最猛性xxxxxx| 亚洲av无码乱码国产麻豆| 亚洲一区二区三区中文字幕在线| 一级少妇精品久久久久久久| 日韩一级不卡| 日韩精品第一页| 欧洲午夜精品| 欧美日韩福利视频| 视频污在线观看| 色婷婷亚洲精品| 精品手机在线视频| 国产精品996| 天堂…中文在线最新版在线| 天堂99x99es久久精品免费| 国产精国产精品| 午夜伦全在线观看| 日韩午夜激情免费电影| 午夜影院在线看| 国产欧美日韩不卡免费| 91蝌蚪视频在线| 亚洲激情欧美| 色999日韩自偷自拍美女| 亚洲网站三级| 久久久综合av| 超碰97在线免费观看| 91精品综合久久久久久| 日韩欧美中文字幕一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品嫩草影院8vv8| 在线观看视频免费一区二区三区| 欧美久久综合性欧美| 四虎国产精品成人免费影视| 久久久久久亚洲精品中文字幕| 久青青在线观看视频国产| 7777精品伊人久久久大香线蕉超级流畅| 麻豆一区产品精品蜜桃的特点| 26uuu国产电影一区二区| 日本不卡一区二区在线观看| 亚洲国产免费看| 亚洲欧美国产不卡| 国产图片一区| 成人网在线观看| 三级中文字幕在线观看| 久久婷婷国产麻豆91天堂| 水莓100国产免费av在线播放| 欧美乱熟臀69xxxxxx| 国产精品xxxx喷水欧美| 亚洲视频1区2区| 国产精品扒开腿做爽爽| 国产99久久久国产精品| 五月天激情视频在线观看| 一本久道综合久久精品| 中文字幕av久久| 国产一区二区区别| 国产精品入口免费| 国产一区二区久久久久| 国产精品免费看久久久香蕉| 免费v片在线观看| 欧美成人在线免费| 精品孕妇一区二区三区| 亚洲少妇中文在线| 婷婷在线免费观看| 欧美一区二区三区色| 超碰在线免费97| 精品高清一区二区三区| 麻豆疯狂做受xxxx高潮视频| 成人免费一区二区三区在线观看| 在线免费观看麻豆| 99国产麻豆精品| 午夜性福利视频| 国产一区福利在线| 日韩欧美国产片| 丝袜美腿亚洲综合| av动漫在线观看| 亚洲日本欧美| 国产a级片网站| 天堂美国久久| 伊人久久大香线蕉av一区| 欧美呦呦网站| 欧洲视频一区二区三区| 亚洲婷婷影院| 欧美在线视频二区| 国产99精品一区| 欧美一区二区三区电影在线观看| 偷拍一区二区| 蜜桃麻豆91| 你懂的一区二区三区| 日本一区免费在线观看| 国产一区二区三区日韩精品| 欧美一级二级三级九九九| 亚洲系列另类av| 日韩欧美一区二区三区四区五区| 精品国产91久久久久久浪潮蜜月| 欧美性色黄大片人与善| 国产欧美一区| 水蜜桃一区二区三区| 日韩免费视频| 最新视频 - x88av| 国产一区二区三区自拍| 免费一级特黄毛片| 午夜亚洲影视| 无码日韩人妻精品久久蜜桃| 青青草国产精品97视觉盛宴| gai在线观看免费高清| 激情久久五月天| 国产裸体视频网站| 99久久婷婷国产| 精品人妻互换一区二区三区| 国产精品久久久久久久久搜平片| 疯狂试爱三2浴室激情视频| 亚洲综合免费观看高清完整版在线| 精品在线视频免费观看| 狠狠色狠色综合曰曰| 97人妻一区二区精品视频| 欧美日韩成人一区二区| 性生活黄色大片| 日韩精品在线视频| 免费黄网在线观看| 久久琪琪电影院| 日韩欧美一区二区三区免费观看| 成人精品久久一区二区三区| 一区二区精彩视频| 欧美日本亚洲| 亚洲午夜精品一区 二区 三区| 国产欧美日韩小视频| 日韩专区在线视频| 伊人久久久久久久久| 久久久久久亚洲综合| 日日噜噜夜夜狠狠久久波多野| 亚洲一区二区黄色| 欧美成人精品网站| 日韩精品一区二区三区在线播放 | 女人扒开屁股爽桶30分钟| 久久精品99国产精品日本| 亚洲视频 中文字幕| 国产精品三级久久久久三级| 久久午夜无码鲁丝片| 日本韩国欧美在线| 六月丁香综合网| 日韩性生活视频| 麻豆免费版在线观看| 成人免费网站在线| 免费看av成人| 国产成人在线小视频| 日韩精品久久理论片| 亚洲最大视频网| 国产亚洲精品超碰| 日本三级中文字幕| 欧美精品777| 国产在线色视频| 欧美国产精品日韩| 中文成人在线| 日韩久久久久久久| 国产精品久久久久久久免费软件| 色婷婷一区二区三区在线观看| 久久精品亚洲麻豆av一区二区| 国产午夜视频在线| 7777精品久久久大香线蕉| 韩国三级av在线免费观看| 久久久久久久久亚洲| gogo大尺度成人免费视频| 色综合视频二区偷拍在线| 亚洲免费综合| av免费观看不卡| 亚洲乱码中文字幕| 国产精品伦一区二区三区| 国产小视频91| 免费福利视频一区二区三区| 极品尤物一区二区三区| 国产精品a级| 波多野结衣中文字幕在线播放| 国产精品久久一级| 中文在线免费看视频| 亚洲视频在线观看网站| 一区二区乱码| 久久久精品国产一区二区三区| 亚洲激情二区| 黄色免费视频网站| 五月天精品一区二区三区| 男人天堂手机在线观看| 欧美国产中文字幕| 一区二区三区四区视频免费观看| 一道本在线观看视频| 激情都市一区二区| 精品自拍偷拍视频| 91精品国产91久久久久久最新毛片| 免费在线午夜视频| 国产一区二区色| 午夜久久免费观看| 午夜免费视频网站| 尤物视频一区二区| 丰满少妇一级片| 97国产suv精品一区二区62| 欧美日韩精品一区二区三区在线观看| 精品少妇在线视频| 91亚洲精品乱码久久久久久蜜桃 | av在线网页| 久久精品magnetxturnbtih| 久久精品毛片| 极品久久久久久久| 欧美喷潮久久久xxxxx| 哥也色在线视频| 国产精品区一区二区三在线播放| 欧美日韩国产一区精品一区| 人妻体内射精一区二区三区| 大桥未久av一区二区三区| 激情在线视频| 成人av番号网| 激情综合在线| 日韩在线免费观看av| 制服丝袜一区二区三区| 日本三级韩国三级欧美三级| 精品无人区一区二区三区竹菊 | 国产精品xxx视频| 久久人人88| 精人妻一区二区三区| 日韩欧美亚洲成人| 蜜桃av在线免费观看| 国产欧美日韩视频一区二区三区| 久久先锋影音| 免费高清在线观看电视| 日韩大片在线观看视频| 成人黄色视屏网站| 国产情侣第一页| 久久久久久免费网| 国产剧情久久久| 18性欧美xxxⅹ性满足| 色999国产精品| 日本三级日本三级日本三级极| 欧美性猛交一区二区三区精品| 18av在线视频| 清纯唯美一区二区三区| 国产传媒一区在线| 五月激情丁香网| 欧美肥老妇视频| 日韩欧美大片| 中文字幕在线永久| 9191国产精品| 欧美一级大黄| bt天堂新版中文在线地址| 国产精品视频yy9299一区| 日本精品一二区| 成人在线观看视频网站| 天堂久久久久va久久久久| 久久久久久av无码免费网站| 色偷偷亚洲男人天堂|