除了三目運算,你還知道其餘的裝逼姿式嗎?留言走你~~javascript
單行簡潔的代碼很難維護(有時甚至難以理解),但這並不能阻止廣大攻城獅們腦洞,在編寫簡潔的代碼後得到必定的知足感。java
如下我最近的一些收藏javascript
精簡代碼集合。它們均可以在你的開發控制檯中運行,你能夠從控制檯中查看運行結果。同時,我但願你能在評論中分享一些本身的藏品!面試
建立過去七天的數組,若是將代碼中的減號換成加號,你將獲得將來7天的數組集合數組
// 建立過去七天的數組 [...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days)); 複製代碼
在原型設計時常常使用的建立ID功能。可是我在實際項目中看到有人使用它。其實這並不安全安全
// 生成長度爲11的隨機字母數字字符串 Math.random().toString(36).substring(2); // hg7znok52x 複製代碼
這個獲取URL的查詢參數代碼,是我見過最精簡的QAQ
markdown
?foo=bar&baz=bing => {foo: bar, baz: bing}
dom
// 獲取URL的查詢參數 q={};location.search.replace(/([^?&=]+)=([^&]+)/g,(_,k,v)=>q[k]=v);q; 複製代碼
經過一堆HTML,您能夠建立一個本地時間,其中包含您能夠一口氣讀出的源代碼,它每秒都會用當前時間更新頁面函數
// 建立本地時間 <body onload="setInterval(()=>document.body.innerHTML=new Date().toLocaleString().slice(10,19))"></body> 複製代碼
隨機更改數組元素順序,混淆數組spa
// 隨機更改數組元素順序,混淆數組 (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) */ 複製代碼
使用JavaScript簡潔代碼生成隨機十六進制代碼設計
// 生成隨機十六進制代碼 如:'#c618b2' '#' + Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, '0'); 複製代碼
這是一個臭名昭著的面試題,讓你寫出他的運行結果,受不了~
for(i=0;++i<101;console.log(i%5?f||i:f+'Buzz'))f=i%3?'':'Fizz' 複製代碼
這是一個原生的JS函數可是很是簡潔,Set接受任何可迭代對象,如數組[1,2,3,3],並刪除重複項
// 數組去重 [...new Set(arr)] 複製代碼
方便快捷建立特定大小的數組
[...Array(3).keys()] // [0, 1, 2] 複製代碼
這是一個很難看懂的簡潔代碼,可是運行後你會驚呆的,他居然返回一個圖形鍵盤
// 用字符串返回一個鍵盤圖形 (_=>[..."`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` `)() 複製代碼
這是它的打印結果:
驚人!