javaScript 一些小技巧

日曆

  • 建立過去七天的數組,若是將代碼中的減號換成加號,你將獲得將來7天的數組集合
// 建立過去七天的數組
[...Array(7).keys()].map(days => new Date(Date.now() - 86400000 * days));

生成隨機ID

  • 在原型設計時常用的建立ID功能。可是我在實際項目中看到有人使用它。其實這並不安全
// 生成長度爲11的隨機字母數字字符串
Math.random().toString(36).substring(2);
// hg7znok52x

獲取url 查詢參數

  • 這個獲取URL的查詢參數代碼,是我見過最精簡的QAQ
?foo=bar&baz=bing => {foo: bar, baz: bing}

// 獲取URL的查詢參數
let q = {};
location.search.replace(/([^?&=]+)=([^&]+)/g, (_, k, v) => q[k] = v);
console.log(q);

本地時間

  • 經過一堆HTML,您能夠建立一個本地時間,其中包含您能夠一口氣讀出的源代碼,它每秒都會用當前時間更新頁面
<body onload="setInterval(()=>document.body.innerHTML=new Date().toLocaleString().slice(10,19))"></body>

數組混淆

  • 隨機更改數組元素順序,混淆數組
// 隨機更改數組元素順序,混淆數組
(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)
*/

數組去重

[...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`
`)()

正則去空格

function myTrim(str) {
  let reg = /^\s+|\s+$/g;
  return str.replace(reg, "");
}
console.log(myTrim('    asdf    '));
相關文章
相關標籤/搜索