类型转换

!! = Boolean()~~ = ParseInt()+  = ParseFloat()

应用includes代替indexOf

Array.prototype.includes曾经被绝大多数浏览器反对,受制于之前浏览器兼容性的影响,许多身边的共事仍然习惯应用indexOf,但includes更加体现代码的语义化。

var arr = [1,2,3,4]console.log(arr.indexOf(2) >= 0)console.log(!!~arr.indexOf(2))console.log(arr.includes(2))

reduce的用途

在与后端的数据交互中,后端开发往往不能提供对于前端十分理想化的数据,列表尤为显著,Array.prototype.reduce能够比拟不便的格式化须要的数据
以前的代码

var arr = []const { data = [] } = resultdata.forEach(item => {    if (xxx) {        arr.push({            xxx: item.xxx,            .....        })    }})retrun arr

应用reduce

const { data = [] } = resultconst arr = data.reduce((prev, curr) => {    if (curr.xxx) {        prev.push({            xxx: curr.xxx,            .....        })    }    return prev}, [])return arr