一些JS编程技巧

create on in javascript with 0 comment and 189 view

本文记录一些js编程知识点.

本篇的解决方案也许不是性能最优的, 但应该是撸码时最便捷的.

判断函数是否被 new 调用

  1. 使用 new.target (IE no support)
function Test() { console.log(new.target === Test) } new Test() // true Test() // false
  1. 使用 instanceof
function Test() { console.log(this instanceof Test) } var t = new Test() // true Test.call(t) // true Test() // false

判断数组内的元素是否都相同

Array.from(new Set([1,1])).length === 1

解构数组

问题:

请将数组:
[[1,2,3],[4,5,6],[7,8]]
转化为
[1,2,3,4,5,6,7,8]

解决方案:

let after = before.reduce((ary1,ary2)=>[...ary1,...ary2],[])

如果不知原数组内嵌深度,那么递归即可.

进制转化

10进制转2进制

let num10 = 8 parseInt(num10).toString(2) //100

2进制转10进制

let num2 = 100 parseInt(num2, 2) // 8
😁😂😃😄😅😆😇😈😉😐😑😒😓😔😕😖😗😘😙😠😡😢😣😤😥😦😧😨😩😰😱😲😳😴😵😶😷😸😹🙀🙁🙂🙃🙄🙅🙆🙇🙈
🙂