js經常使用小技能黑科技 - javascript(js) commonly used skill

原文地點

https://github.com/TigerHee/s…
  • 小數取整:
  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 ===', a);
  console.log('b ===', b);
  • 擴大運算符:

取數組最大值:

  Math.max(...[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};

  Object.assign(obj1, obj2)
    等同於
  {...obj1, ...obj2}
  • 經常使用要領:

数字前補0:

  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);
  }

天生指定長度數組:

  Array.from(new Array(10).keys());
  • 正則進階:

捕捉括號:

  婚配 'tigerHee' 而且記着婚配項
  /(tigerHee)/

非捕捉括號:

  婚配 'tigerHee' 然則不記着婚配項
  /(?:tigerHee)/

先行斷言:

  婚配'tiger'僅僅當'tiger'背面隨着'Hee'
  /tiger(?=Hee)/

後行斷言:

  婚配'Hee'僅僅當'Hee'前面是'tiger'
  /(?<=tiger)Hee/

正向否認查找:

  婚配'tiger'僅僅當'tiger'背面不隨着'java'
  /tiger(?!java)/
假如以為有效的話,能夠來個star哦
    原文作者:tigerHee
    原文地址: https://segmentfault.com/a/1190000015180652
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞