当前位置: 萬仟网 > IT编程>开发语言>JavaScript > 记录一些实用的小技巧-JS篇

记录一些实用的小技巧-JS篇

2019年11月20日 07:47  | 萬仟网IT编程  | 我要评论

1.16进制随机颜色

let color = '#'+math.random().tostring(16).slice(-6)

2.类型判断工具函数

function istype(target, type) {
  let targettype = object.prototype.tostring.call(target).slice(8, -1).tolowercase()
  type = type.tolowercase()
  return targettype === type
}
istype([],'array') //true

3.正则匹配两个字符间的内容

let str = '#javascript#html#css#'
let res = str.match(/#.*?#/)[0]

4.简洁的设置默认参数

if(!arr){
  arr = []
}
arr.push(1)

//可以这样写
(arr && (arr=[])).push(1)

5.reduce会更简洁

filter和map的组合使用可能很多人都会使用过,但是这样会进行两次遍历操作。可以使用reduce遍历一次完成同样的操作。

reduce接受一个回调函数和一个默认值。

回调函数接受两个参数,prev是上次返回值,curr是当前遍历值。在第一次遍历时,prev为默认值,每次遍历返回的prev都会在下一个遍历中取到。reduce因此也被叫做”累加函数“。

let people = [{name:'joe',age:18},{name:'mike',age:19},{name:'jack',age:20}]
people.fliter(p=>p.age < 20).map(p=>p.name)

//可以这样写
people.reduce((prev,curr)=>{
    if(age<20){
       prev.push(curr.name)
    }
    return prev
},[])

6.策略模式

使用策略模式来代替一堆的 if...else,让代码看起来更简洁

if(type == = 'content'){
    getcontent()
}else if(type === 'hot'){
    gethot()
}else if(type === 'rank'){
    getrank()
}
...

//可以这样写
let action = {
    content: getcontent,
    hot: gethot,
    rank: getrank,
    ....
}
action[type]()

 7.json.stringify的其他参数

let str = {a:1,b:2,c:3}

//过滤
json.stringify(str, ['a'])   //"{"a":1}"

//格式化
json.stringify(str, null, 2)  
/*
"{
  "a": 1,
  "b": 2,
  "c": 3
}"
*/

8.获取月份的最后一天

new date('2019','2',0).getdate()

 

部分来源于网络收集,不定时更新~

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com