久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

開發(fā)中常用的 25 個JavaScript 單行代碼

2021-01-29    分類: 網(wǎng)站建設(shè)

1.強制布爾值

要將變量強制轉(zhuǎn)換為布爾值而不更改其值:

  1. const?myBoolean?=?!!?myVariable;?
  2. !!null?//?false?
  3. !!undefined?//?false?
  4. !!false?//?false?
  5. !!ture?//?ture?
  6. !!""?//?false?
  7. !!"string"?//?true?
  8. !!0?//?false?
  9. !!1?//?true?
  10. !!{}?//?true?
  11. !![]?//?true?

2.基于某個條件為對象設(shè)置屬性

要使用spread運算符有條件地在對象上設(shè)置屬性:

  1. const?myObject?=?{...?myProperty?&&?{propName:myPoperty}};?
  2. let?myProperty?=?'Jhon'?
  3. const?myObject?=?{...myProperty?&&?{propName:?myProperty}};?//?{propName:?"Jhon"}?
  4. let?myProperty?=?''?
  5. const?myObject?=?{...myProperty?&&?{propName:?myProperty}};?//?{}?

如果myProperty結(jié)果為false,則 && 失敗并且不設(shè)置新屬性; 否則,如果不為空,&& 將設(shè)置新屬性并覆蓋原來的值。

3.合并對象

  1. const?mergedObject?=?{?...objectOne,?...objectTwo?};?
  2. const?mergedObject?=?{?...{name:?'Jhon',?age:?'18'},?...{name1:?'jhon1',?age1:?'12'}};?
  3. //?{name:?"Jhon",?age:?"18",?name1:?"jhon1",?age1:?"12"}?
  4. const?mergedObject?=?{?...{name:?'Jhon',?age:?'18'},?...{name:?'jhon1',?age:'12'}};?
  5. //?{name:?"jhon1",?age:?"12"}?

支持無限制合并,但如果對象之間存在相同屬性,則后面屬性會覆蓋前面屬性。*請注意,這僅適用于淺層合并。

4.交換變量

要在不使用中間變量的情況下交換兩個變量的值:

  1. [varA,varB]?=?[varB,varA];?
  2. let?a?=?1;?
  3. let?b?=?2;?
  4. [a,?b]?=?[b,?a]?//?a?=?2?b?=?1?

5.刪除Boolean 為 false 值

  1. const?clean?=?dirty.filter(Boolean);?
  2. const?clean?=?[0,?false,?true,?undefined,?null,?'',?12,?15].filter(Boolean);?
  3. //?[true,?12,?15]?

這將刪除值等于:null,undefined,false,0 和空字符串('')。

6.轉(zhuǎn)換元素類型

要將Number元素轉(zhuǎn)換為String元素:

  1. const?stringArray?=?numberArray.map(String);?
  2. const?stringArray?=?[1,?2,?3].map(String);?
  3. ["1",?"2",?"3"]?

如果數(shù)組包含字符串,字符串原樣保留。 這也可以用于將String元素轉(zhuǎn)換為Number類型:

  1. const?numberArray?=?stringArray.map(Number);?
  2. const?stringArray?=?["1",?"2",?"3"].map(String);?
  3. //?[1,?2,?3]?

7.格式化對象為JSON代碼

要以可讀的格式顯示JSON代碼:

  1. const?formatted?=?JSON.stringify(myObj,?null,?4);?
  2. const?formatted?=?JSON.stringify({name:?'Jhon',?age:?18,?address:?'sz'},?null,?4);?
  3. /*?
  4. {?
  5. ?"name":?"Jhon",?
  6. ?"age":?18,?
  7. ?"address":?"sz"?
  8. }?
  9. */?

該字符串化命令有三個參數(shù)。第一個是Javascript對象。第二個是可選函數(shù),可用于在JSON進行字符串化時對其執(zhí)行操作。最后一個參數(shù)指示要添加多少空格作為縮進以格式化JSON。省略最后一個參數(shù),JSON將返回一個長行。如果myObj中存在循環(huán)引用,則會格式失敗。

8.快速創(chuàng)建數(shù)字數(shù)組

要創(chuàng)建一個數(shù)組并用數(shù)字填充它,索引為零:

  1. const?numArray?=?Array.from(new?Array(10),?(x,?i)=>?i);?
  2. //?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]?

9.隨機生成六位數(shù)字驗證碼

  1. const?code?=?Math.floor(Math.random()?*?1000000).toString().padStart(6,?"0");?
  2. //?942377?

10.身份證正則

  1. const?IDReg=?/(^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$)|(^[1-9]d{5}d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{2}[0-9Xx]$)/;?

11.window.location.search 轉(zhuǎn) JS 對象

有時候我們會對url的查詢參數(shù)即從問號 (?)后 開始的 URL(查詢部分)進行轉(zhuǎn)換

  1. const?searchObj?=?search?=>?JSON.parse(`{"${decodeURIComponent(search.substring(1)).replace(/"/g,?'\"').replace(/&/g,?'","').replace(/=/g,?'":"')}"}`);?
  2. //?假如請求url為?
  3. //?'https://www.baidu.com?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=js&rsv_pq=a86b5e5f0007bceb&rsv_t=1e1fAVan%2BVlnkhJHFB0BIGLdLM2slszYMJBTTfFkmyyBUzBpw0ggeuVDE50&rqlang=cn&rsv_enter=0&inputT=1287&rsv_sug3=5&rsv_sug1=3&rsv_sug7=101&rsv_sug2=0&rsv_sug4=1907'?
  4. //?那么?window.location.search?就為:?
  5. let?search?=?'?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=js&rsv_pq=a86b5e5f0007bceb&rsv_t=1e1fAVan%2BVlnkhJHFB0BIGLdLM2slszYMJBTTfFkmyyBUzBpw0ggeuVDE50&rqlang=cn&rsv_enter=0&inputT=1287&rsv_sug3=5&rsv_sug1=3&rsv_sug7=101&rsv_sug2=0&rsv_sug4=1907'?
  6. searchObj(search)?

格式化查詢字符串得到如下對象:

12. JS 對象轉(zhuǎn) url 查詢字符串

  1. const?objectToQueryString?=?(obj)?=>?Object.keys(obj).map((key)?=>?`${encodeURIComponent(key)}=${encodeURIComponent(obj[key])}`).join('&');?
  2. objectToQueryString({name:?'Jhon',?age:?18,?address:?'beijing'})?
  3. //?name=Jhon&age=18&address=beijing?

13.獲取數(shù)組交集

  1. const?similarity?=?(arr,?values)?=>?arr.filter(v?=>?values.includes(v));?
  2. similarity([1,?2,?3],?[1,?2,?4]);?//?[1,2]?

14.檢測設(shè)備類型

使用正則表達式來檢測 navigator.userAgent 屬性判斷設(shè)備是在移動設(shè)備還是在臺式機/筆記本電腦打開。

  1. const?detectDeviceType?=?()?=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|OperaMini/i.test(navigator.userAgent)???'Mobile'?:?'Desktop';?

15. 將數(shù)字轉(zhuǎn)化為千分位格式

  1. const?toDecimalMark?=?num?=>?num.toLocaleString('en-US');?
  2. toDecimalMark(12305030388.9087);?//?"12,305,030,388.909"?

16 多維數(shù)組轉(zhuǎn)一維數(shù)組

  1. const?deepFlatten?=?arr?=>?[].concat(...arr.map(v?=>?(Array.isArray(v)???deepFlatten(v)?:?v)));?
  2. deepFlatten([1,?[2],?[[3],?4],?5]);?//?[1,2,3,4,5]?

17.過濾對象數(shù)組

  1. const?reducedFilter?=?(data,?keys,?fn)?=>data.filter(fn).map(el?=>keys.reduce((acc,?key)?=>?{acc[key]?=el[key];return?acc;},?{}));?
  2. const?data?=?[?
  3. ?{?
  4. ?id:?1,?
  5. ?name:?'john',?
  6. ?age:?24?
  7. ?},?
  8. ?{?
  9. ?id:?2,?
  10. ?name:?'mike',?
  11. ?age:?50?
  12. ?}?
  13. ];?
  14. let?a?=?reducedFilter(data,?['id',?'name'],?item?=>?item.age?>?24);?//?[{?id:?2,?name:?'mike'}]?

18.駝峰字字符串格式化

轉(zhuǎn)換駝峰拼寫的字符串為特定格式。

使用 String.replace() 去除下劃線,連字符和空格,并將駝峰拼寫格式的單詞轉(zhuǎn)換為全小寫。省略第二個參數(shù) separator ,默認使用 _ 分隔符。

  1. const?fromCamelCase?=?(str,?separator?=?'_')?=>str.replace(/([a-zd])([A-Z])/g,?'$1'?+?separator?+?'$2').replace(/([A-Z]+)([A-Z][a-zd]+)/g,?'$1'?+?separator?+?'$2').toLowerCase();?
  2. fromCamelCase('someDatabaseFieldName',?'?');?//?'some?database?field?name'?
  3. fromCamelCase('someLabelThatNeedsToBeCamelized',?'-');?//?'some-label-that-needs-to-be-camelized'?
  4. fromCamelCase('someJavascriptProperty',?'_');?//?'some_javascript_property'?

19.是否為絕對地址

  1. const?isAbsoluteURL?=?str?=>?/^[a-z][a-z0-9+.-]*:/.test(str);?
  2. isAbsoluteURL('https://google.com');?//?true?
  3. isAbsoluteURL('ftp://www.myserver.net');?//?true?
  4. isAbsoluteURL('/foo/bar');?//?false?

20.獲取兩個日期相差天數(shù)

  1. const?getDaysDiffBetweenDates?=?(dateInitial,?dateFinal)?=>?(dateFinal?-?dateInitial)?/?(1000?*?3600?*?24);?
  2. getDaysDiffBetweenDates(new?Date('2017-12-13'),?new?Date('2017-12-22'));?//?9?

21.數(shù)組去重

  1. const?deDupe?=?(myArray)?=>?[...?new?Set(myArray)];?
  2. deDupe([1,?1,?2,?1,?3,?3,?4])?
  3. //?[1,?2,?3,?4]?

22.數(shù)組對象去重

  1. const?uniqueElementsBy?=?(arr,?fn)?=>arr.reduce((acc,?v)?=>?{if?(!acc.some(x?=>?fn(v,?x)))?acc.push(v);return?acc;},?[]);?
  2. uniqueElementsBy([{id:?1,?name:?'Jhon'},?{id:?2,?name:?'sss'},?{id:?1,?name:?'Jhon'}],?(a,?b)?=>?a.id?==?b.id)?
  3. //?[{id:?1,?name:?'Jhon'},?{id:?2,?name:?'sss'}]?

23. RGB 顏色轉(zhuǎn) 16進制顏色

  1. const?RGBToHex?=?(r,?g,?b)?=>?((r?<
  2. RGBToHex(255,?165,?1);?//?'ffa501'?

24. 常用密碼組合正則

  1. const?passwordReg?=?/(?!^(d+|[a-zA-Z]+|[~!@#$%^&*?]+)$)^[w~!@#$%^&*?]{8,20}$/;?
  2. //?-長度8~20位字符,支持大小寫字母、數(shù)字、符號三種字符中任意兩種字符的組合?

25. 判斷dom元素是否具有某個className

  1. const?hasClass?=?(el,?className)?=>?new?RegExp(`(^|\s)${className}(\s|$)`).test(el.classNam

本文標題:開發(fā)中常用的 25 個JavaScript 單行代碼
本文鏈接:http://www.js-pz168.com/news46/98046.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計公司、網(wǎng)站改版手機網(wǎng)站建設(shè)、商城網(wǎng)站、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
天堂精品一区二区三区| 日韩欧美在线网站| 久久综合资源网| 亚洲精品少妇30p| 精品一区二区三区免费观看 | 自拍另类欧美| 欧美mv日韩mv亚洲| 亚洲精品国产一区二区精华液| 青青草成人在线观看| 91小视频在线观看| 一本一道久久久a久久久精品91 | 精品一二三四在线| 国产99在线播放| 色噜噜狠狠色综合欧洲selulu| 精品福利av导航| 亚洲成人av资源| 99久久免费视频.com| 亚洲日本精品国产第一区| 久久日韩精品一区二区五区| 天天综合天天做天天综合| 99久久久无码国产精品| 色综合久久综合网97色综合| xf在线a精品一区二区视频网站| 亚洲国产日韩一区二区| av电影在线不卡| 一区一区视频| 亚洲国产高清在线| 精品无码三级在线观看视频| 久久精品国产综合精品| 欧美一区二区三区系列电影| 亚洲一区精品在线| 91污片在线观看| 在线免费不卡电影| 最近中文字幕一区二区三区| 国产suv精品一区二区883| 手机看片福利永久国产日韩| 久久久久97国产精华液好用吗| 秋霞午夜av一区二区三区| 国产一级二级三级精品| 91精品国产手机| 亚洲成人动漫在线观看| 国产精品二区在线| 7777精品伊人久久久大香线蕉的| 亚洲精品你懂的| 91色视频在线| 欧美欧美欧美欧美首页| 亚洲国产一区视频| 超碰97网站| 欧美一区二区精品在线| 男人的j进女人的j一区| 久久av一区二区三区亚洲| 日韩欧美国产一二三区| 免费在线一区观看| 欧美日韩国产精品一卡| 国产日产欧产精品推荐色 | 欧美日韩国产123区| 一区二区三区免费看视频| 91玉足脚交白嫩脚丫在线播放| 欧美三级日韩三级| 亚洲成人午夜影院| 久久av一区二区| 久久久久久久久久久久久久久99 | hitomi一区二区三区精品| 欧美丝袜丝交足nylons| 亚洲制服丝袜av| 国产一区二区三区高清| 久久人人97超碰com| 国产精品88av| 欧美视频完全免费看| 亚洲成人自拍一区| 免费毛片一区二区三区久久久| 久久青草欧美一区二区三区| 国产精品一区二区久激情瑜伽| 色婷婷国产精品综合在线观看| 一区二区三区国产精华| 国产日韩欧美二区| 欧美mv日韩mv国产| 国产福利电影一区二区三区| 91久久线看在观草草青青 | 亚洲不卡中文字幕| 亚洲美女少妇撒尿| 国产一区二区三区黄| 国产欧美日韩另类一区| av在线一区二区| 日韩精品中文字幕在线不卡尤物| 黑人巨大精品欧美黑白配亚洲| 色综合天天性综合| 天堂在线一区二区| 亚洲视频欧美在线| 一级女性全黄久久生活片免费| 国产精品一区视频| 国产精品色噜噜| 国产91免费视频| 99re国产在线播放| 久久久精品国产免大香伊| 成人高清视频免费观看| 日韩欧美一二区| 国产成人精品1024| 日韩欧美高清dvd碟片| 国产suv精品一区二区三区| 91精品国产综合久久精品麻豆| 国产一区二区三区蝌蚪| 欧美精品一级二级三级| 国产一区二区三区四区五区入口 | 久久久www成人免费毛片麻豆 | 久久综合九色99| 亚洲日本va午夜在线电影| 久久伦理网站| 亚洲精品中文在线| 欧美在线视频二区| 亚洲一二三四久久| 性高潮久久久久久久久| 午夜精品久久久久| 色综合天天综合网国产成人综合天| 香蕉久久一区二区不卡无毒影院 | 精品处破学生在线二十三| a4yy欧美一区二区三区| 国产亚洲污的网站| 国产亚洲欧美一区二区 | 日韩av一级电影| 在线观看一区二区精品视频| 久久99国产精品久久99果冻传媒| 欧美视频在线播放| 国产激情视频一区二区三区欧美| 日韩一二在线观看| 91美女福利视频| 国产精品国产三级国产普通话99 | 亚洲欧美中日韩| 欧美日韩三区四区| 天天av天天翘天天综合网色鬼国产 | 久久丝袜美腿综合| 国产精品久久一区二区三区| 亚洲同性gay激情无套| 色女孩综合网| 美国毛片一区二区| 日韩欧美国产1| 成人av资源网| 一区二区三区四区蜜桃| 色综合久久精品| 国产一二三精品| 久久免费的精品国产v∧| 九九九九精品| 日韩在线一区二区| 欧美精品1区2区3区| 99在线视频精品| 亚洲欧美综合另类在线卡通| 亚洲一区二区三区色| 国产一区二区福利| 久久久精品免费免费| 欧美日韩精品免费看| 狂野欧美性猛交blacked| 日韩视频在线一区二区| 国产精品三区在线| 五月婷婷色综合| 欧美一区二区三区四区视频| 91在线精品观看| 亚洲国产日韩综合久久精品| 欧美日韩精品一二三区| 91手机在线视频| 亚洲国产欧美在线人成| 欧美二区三区的天堂| 成人激情直播| 日韩激情av在线| 欧美成人一区二区三区| 久久免费一区| 另类小说图片综合网| 久久久精品影视| 亚洲人成网站在线播放2019| 国产成人av在线影院| 专区另类欧美日韩| 欧美性猛交xxxx乱大交退制版| www.66久久| 亚洲午夜精品久久久久久久久| 7878成人国产在线观看| 国产精品自拍首页| 日本v片在线高清不卡在线观看| 日韩一级精品视频在线观看| 久久99精品久久久久久秒播放器| 美腿丝袜亚洲色图| 国产欧美精品区一区二区三区| 中文字幕一区二区三区有限公司| 成人av在线观| 亚洲午夜激情网页| 精品一区二区精品| 欧美激情在线免费观看| 色菇凉天天综合网| 高清国语自产拍免费一区二区三区| 无码av免费一区二区三区试看 | 亚洲午夜激情网页| 欧美变态口味重另类| 日韩精品资源| 成人动漫av在线| 午夜成人在线视频| 国产日韩精品一区二区三区 | 久久免费视频色| 中文字幕中文字幕99| 超碰97人人在线| 经典三级在线一区| 亚洲免费观看高清完整版在线观看| 9191成人精品久久|