以下我最近的一些收藏 JAVAscript精簡代碼集合。它們都可以在你的開發(fā)控制臺中運(yùn)行,你可以從控制臺中查看運(yùn)行結(jié)果。同時,我希望你能在評論中分享一些自己的藏品!
01、日歷
創(chuàng)建過去七天的數(shù)組,如果將代碼中的減號換成加號,你將得到未來7天的數(shù)組集合
// 創(chuàng)建過去七天的數(shù)組
[...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days));
02、生成隨機(jī)ID
在原型設(shè)計時經(jīng)常使用的創(chuàng)建ID功能。但是我在實際項目中看到有人使用它。其實這并不安全
// 生成長度為11的隨機(jī)字母數(shù)字字符串
Math.random().toString(36).substring(2);
// hg7znok52x
03、獲取URL的查詢參數(shù)
這個獲取URL的查詢參數(shù)代碼,是我見過最精簡的 QAQ
?foo=bar&baz=bing => {foo: bar, baz: bing}
// 獲取URL的查詢參數(shù)
q={};location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v);q;
04、本地時間
通過一堆html,您可以創(chuàng)建一個本地時間,其中包含您可以一口氣讀出的源代碼,它每秒都會用當(dāng)前時間更新頁面
// 創(chuàng)建本地時間
<body onload="setInterval(()=>document.body.innerHTML=new Date().toLocaleString().slice(10,19))"></body>
05、數(shù)組混淆
隨機(jī)更改數(shù)組元素順序,混淆數(shù)組
// 隨機(jī)更改數(shù)組元素順序,混淆數(shù)組
(arr) => arr.slice().sort(() => Math.random() - 0.5)
/*
let a = (arr) => arr.slice().sort(() => Math.random() - 0.5)
let b = a([1,2,3,4,5])
console.log(b)
*/
06、生成隨機(jī)十六進(jìn)制代碼(生成隨機(jī)顏色)
使用JavaScript簡潔代碼生成隨機(jī)十六進(jìn)制代碼
// 生成隨機(jī)十六進(jìn)制代碼 如:'#c618b2'
'#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0');
07、一個面試題
這是一個臭名昭著的面試題,讓你寫出他的運(yùn)行結(jié)果,受不了~
for(i=0;++i<101;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz'
08、數(shù)組去重
這是一個原生的JS函數(shù)但是非常簡潔,Set接受任何可迭代對象,如數(shù)組[1,2,3,3],并刪除重復(fù)項
// 數(shù)組去重
[...new Set(arr)]
09、創(chuàng)建特定大小的數(shù)組
方便快捷創(chuàng)建特定大小的數(shù)組
[...Array(3).keys()]
// [0, 1, 2]
10、返回一個鍵盤(驚呆了)
這是一個很難看懂的簡潔代碼,但是運(yùn)行后你會驚呆的,他竟然返回一個圖形鍵盤
// 用字符串返回一個鍵盤圖形
(_=>[..."`1234567890-=~~QWERTYUIOP[]\~ASDFGHJKL;'~~ZXCVBNM,./~"].map(x=>(o+=`/${b='_'.repeat(w=x<y?2:' 667699'[x=["BS","TAB","CAPS","ENTER"][p++]||'SHIFT',p])}\|`,m+=y+(x+' ').slice(0,w)+y+y,n+=y+b+y+y,l+=' __'+b)[73]&&(k.push(l,m,n,o),l='',m=n=o=y),m=n=o=y='|',p=l=k=[])&&k.join`
`)()
這是它的打印結(jié)果:
驚人!