Полезные JavaScript сниппеты

/* Побитовое приведение в целочисленный тип */
1234.56 | 0
=> 1234

/* Найти максимальный элемент в массиве */
var data = [1,2,3,4,5];
Math.max.apply(null, data);
=> 5

/* Использовать оператор "~" вместе с функцией indexOf */
myString = "my simple string"
if(~myString.indexOf("simple")) { 
  console.log('found!'); 
}
=> found!

/* Быстрое преобразование в целое 32 битное число */
123.456 >>> 0
=> 123

Важно использовать только положительные значения. Если указать отрицательные числа - результат может удивить тех, кто не читает доки:

-123.456 >>> 0 
=> 4294967173

/* Псевдо-случайный GUID */
guid = function() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8);
    return v.toString(16);
  }).toUpperCase();
};

// Пример:
guid()
=> "5D8B561A-4794-40D1-A792-46CB67C9BC10"

/* Loop thread */
!function loop() {
  requestAnimationFrame(loop);
  //code...
}();

/* Синглтон на JavaScript */
var Game = new function() {
  var self = this;
  self.start = function() {
    alert('new Game!');
  }
  return function() { return self; };
}

// Пример:
new Game === new Game
=> true

/* Преобразовать строку из одиночных значений в парные массивы */
toPair = function(str) {
  var resArray = str.split(/,./gi), arr = [], j;
  for(j = 0; j <  resArray.length; j+=2) {
    if(!(j % 2)) {
      arr.push('' + [resArray[j] + ',' + resArray[j + 1]])
    }
  }
  return arr;
}

// Пример:
toPair("2, 4, 8, 16, 32, 64, 128, 256")
=> ["2,4", "8,16", "32,64", "128,256"]

/* Сделать JSON легко читаемым */
obj = {"x":1,"y":2,"z":3}
JSON.stringify(obj, null, 2);
=> "{
  "x": 1,
  "y": 2,
  "z": 3
}"

Советую почитать
Подборка инструментов веб-разработчика


Add Your Comments

Disqus Comments