作为前端开发,你知道这些常用的JavaScript片段吗?让你开发事半功倍

如果有人问我,作为一个初学者应该学习什么编程语言,我会推荐 JavaScript,这种强大的语言几乎涉及到编程各个方面 - 前端、后端、web应用程序、桌面应用程序、移动应用程序等等。

这篇文章我将展示18个常用的JavaScript片段,在日常开发工作中,它们为我大大节省了时间。


1. maxItemOfArray

获取数组中的最大数字

constmaxItemOfArray =(arr) =>arr.sort((a, b) =>b - a)[0];letmaxItem = maxItemOfArray([3,5,12,5]);


2. areAllEqual

检查数组的所有项是否相等

constareAllEqual =array=>array.every(item=>item === array[0]);letcheck1 = areAllEqual([3,5,2]);// falseletcheck2 = allEqual([3,3,3]);// true


3. averageOf

求给定数字的平均值

constaverageOf =(…numbers) =>numbers.reduce((a, b) =>a + b,0) / numbers.length;letaverage = averageOf(5,2,4,7);// 4.5


4. reverseString

反转一个字符串

constreverseString =str=>[…str].reverse().join(‘’);leta = reverseString(‘Have a nice day!’);// !yad ecin a evaH


5. sumOf

求给定数字的和

const sumOf = (…numbers) => numbers.reduce((a, b) => a + b, 0);let sum = sumOf(5, -3, 2, 1); // 5


6. findAndReplace

在字符串中查找给定的单词,并替换为另一个单词

constfindAndReplace =(string, wordToFind, wordToReplace) =>string.split(wordToFind).join(wordToReplace);letresult = findAndReplace(‘I like banana’, ‘banana’, ‘apple’);// I like apple


7. RGBToHex

将RGB模式下的颜色转换为十六进制

constRGBToHex =(r, g, b) =>((r <<16) + (g <<8) + b).toString(16).padStart(6, ‘0’);lethex = RGBToHex(255,255,255);// ffffff


8. shuffle

音乐播放器如何随机播放播放项目?

constshuffle =([…array]) =>{letm = array.length;while(m) {consti =Math.floor(Math.random() * m — );    [array[m], array[i]] = [array[i], array[m]];  }returnarray;};shuffle([5,4,3,6,20]);


9. removeFalseValues

从数组中删除false值,包括false,undefined,NaN,empty

constremoveFalseValues =arr=>arr.filter(item=>item);letarr = removeFalseValues([3,4,false, ‘’,5,true,undefined,NaN, ‘’]);// [3, 4, 5, true]


10. removeDuplicatedValues

从数组中删除重复的项

constremoveDuplicatedValues =array=>[…newSet(array)];letarr = removeDuplicatedValues([5,3,2,5,6,1,1,6]);// [5, 3, 2, 6, 1]


11. getTimeFromDate

以日期对象的字符串形式返回时间

constgetTimeFromDate =date=>date.toTimeString().slice(0,8);lettime = getTimeFromDate(newDate());// 09:46:08


12. capitalizeAllWords

将字符串中所有单词的第一个字母大写

constcapitalizeAllWords =str=>str.replace(/\b[a-z]/g,char=>char.toUpperCase());letstr = capitalizeAllWords(‘i love reading book’);// I Love Reading Book


13. getDayDiff

返回两个日期之间以天为单位的差值

constgetDayDiff =(date1, date2) =>((date2 - date1) / (1000*3600*24));letdiff = getDayDiff(newDate('2020-04-01'),newDate('2020-08-15'));// 136


14. radianToDegree

把弧度转换成角度

constradianToDegree =radian=>(radian *180.0) /Math.PI;letdegree = radianToDegree(2.3);// 131.78


15. isValidJSON

检查给定字符串是否是有效的JSON

constisValidJSON =string=>{try{JSON.parse(string);returntrue;  }catch(error) {returnfalse;  }};letcheck1 = isValidJSON(‘{“title”: “javascript”, “price”:14}’);// trueletcheck2 = isValidJSON(‘{“title”: “javascript”, “price”:14, subtitle}’);// false


16. toWords

将给定的字符串转换为单词数组

consttoWords =(string, pattern =/[^a-zA-Z-]+/) =>string.split(pattern).filter(item=>item);letwords = toWords(‘I want to be come a great programmer’);// [“I”, “want”, “to”, “be”, “come”, “a”, “great”, “programmer”]


17. scrollToTop

位于长页面的底部,并且想快速向上滚动至顶部

constscrollToTop =() =>{constt =document.documentElement.scrollTop ||document.body.scrollTop;if(t >0) {window.requestAnimationFrame(scrollToTop);window.scrollTo(0, t — t /8);  }};


18. isValidNumber

验证数字是否有效

constisValidNumber =n=>!isNaN(parseFloat(n)) &&isFinite(n) &&Number(n) === n;letcheck1 = isValidNumber(10);// trueletcheck2 = isValidNumber(‘a’);// false


好了,今天的分享就到这里,如果你是正在学习前端或准备学习前端,可以去我的前端学习交流群免费下载一些前端学习视频,而且不定时还有大咖直播分享,希望能帮助大家共同成长。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342