settimeout 延时不生效_你可能不知道的js常用小技巧 (js黑科技)

9a8a0c1326bcc64a953b28d3cce14a2d.png

小数取整:

1.234 | 0

~~1.234

1.234 >> 0

妙用隐式转换:

字符串转number:

+'123' 

new Date转时间戳:

+new Date()

数组/多维数组转为逗号分隔字符串(可用于多维数组转一维):

""+[1, 2 , 3, 3, [2, 3, 4]]

解构:

交换a,b的值:

var a=1;     
var b=2;     
[a, b] = [b, a];     
console.log(a, b);

扩展运算符:

取数组最大值/最小值:

Math.max(...[1,2,3])     Math.min(...[1,2,3]) 

生成时间:

new Date(...[2018,6,4])

字符串转数组:

method 1:      
  [...'string']

method 2: 
  Array.from('string')

合并对象:

let obj1 = {a:1, b:2};     let obj2 = {b:3, c:4};

{...obj1, ...obj2}
  等同于
Object.assign(obj1, obj2)

利用URL API获取url的query值

var url = new URL('http://localhost:8000/news?a=1&b=2&c=3');
var searchParams = url.searchParams;
for (let key of searchParams.keys()){
  console.log('====');
  console.log('key === ', key);
  console.log('value === ', searchParams.get(key))
}

常用方法:

  • 数字前补0:
function preFixNum(num, length) {   
  return (Array(length).join('0') + num).slice(-length);
}    
  • 数组元素为对象的去重:
[...new Set(arr.map(v => JSON.stringify(v)))].map(v => JSON.parse(v))
  • 数组求和:
var arr = [1,2,3,4,5];

method 1: 
var sum = eval(arr.join('+'));

method 2: 
var sum = arr.reduce((prev,cur) => prev + cur);
  • 金钱格式化(千分):
let money = 11111;

method 1: 
money.toLocaleString('en-US');

method 2: 
Intl.NumberFormat().format(money);

method 3: 
String(money).replace(/B(?=(d{3})+(?!d))/g, ',');
  • 短路逻辑代替if:
isTrue && console.log(1);
  • RGB to Hex:
function RGBtoHEX(rgb){       
  return ((1<<24) + (rgb.r<<16) + (rgb.g<<8) + rgb.b).toString(16).substr(1);
} 
  • 延时函数:
const delay = ms => new Promise(resolve => setTimeout(resolve, ms))
  • 生成指定长度数组:
Array.from(new Array(10).keys());
  • 快速创建a标签:
let a = '超链接'.link('https://github.com/TigerHee/shareJS');     
console.log('a === ', a)

正则进阶:

  • 捕获括号:
匹配 'tigerHee' 并且记住匹配项
/(tigerHee)/
  • 非捕获括号:
匹配 'tigerHee' 但是不记住匹配项
/(?:tigerHee)/
  • 先行断言:
匹配'tiger'仅仅当'tiger'后面跟着'Hee'
/tiger(?=Hee)/
  • 后行断言:
匹配'Hee'仅仅当'Hee'前面是'tiger'
/(?<=tiger)Hee/
  • 正向否定查找:
匹配'tiger'仅仅当'tiger'后面不跟着'java'
/tiger(?!java)/
https://github.com/TigerHee/shareJS​github.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值