Js一些小技巧

1.生成随机ID

Math.random().toString(16).substring(2);
Math.random().toString(36).substring(2);

  解释:

     Math.random()输出0到1(包括0,不包含1)的随机数。
     toString(16)将随机数转换为16进制的字符串。
     substring(2)截取字符串,因为随机数大于等于0小于1,前两位是“0.”,substring(2)从第三位开始截取到最后。

2.正则去空格

1去掉左边空格

name.replace(/^s*/g,”“);

2去掉右边空格

name.replace(/s*$/g,”“);

3去掉前后空格

smSmsModelName.replace(/(^s*)|(s*$)/g,”“);
说明:
看到分为两部分被“|”:表示前后两个子模可以选择 ,个人人为可以理解为 或 的意思;

(^s*):^ 上面已经显示了属于元字符中的一个 代表字符串需以模式起始。

s 匹配空格(空格包括空白字符、tab、换行符、return/enter)

4去掉所有的空格

name.replace(/s+/g,”“);

3.本地时间

<body onload="setInterval(()=>document.body.innerHTML=new Date().toLocaleString().slice(10,19))"></body>

4.数组混淆  

// 随机更改数组元素顺序,混淆数组
(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)
*/

5.创建特定大小的数组

[...Array(3).keys()]
// [0, 1, 2]

7.数组方法splice返回的是一个数组,该数组是当前的删除项,并不是原数组变更后的数组 

8.打印出当前网页使用了多少种HTML元素

const fn = () => {
  return [...new Set([...document.querySelectorAll('*')].map(el => el.tagName))].length;
}
原文地址:https://www.cnblogs.com/yxkNotes/p/11906016.html