//task-5 function extraCube(x) { if (typeof x == 'number') { function cube(x) { var result = x; for (var i = 1; i < 3; i++) { result *= x; } return result; }; return cube(x); } else { var y; var arrCube = []; for (var i = 0; i < x.length; i++) { y = x[i] * x[i] * x[i]; arrCube.push(y); } return arrCube; } } console.log( extraCube(2) ); console.log( extraCube([0, 1, 2, 3]) ); //task-6 function setComment (date, message, author) { if ( date === undefined || message === undefined){ return alert("Данные переданы некорректно");} if (author === undefined) { author = 'Anonymous' } var $div = $('
').appendTo('body'), $p = $('

').appendTo($div).text(author + ', ' + date).attr('style', 'font-weight:bold', );; $p1 = $('

').appendTo($div).text(message); } setComment('2016-11-02', 'Everything is ok', 'John'); setComment('2016-11-02', 'You could do it better!'); //task-7 var tree = [ { tag: 'section', content: '', children: [ { tag: 'article', content: '', children: [ { tag: 'h1', content: 'Array.prototype.every()', }, { tag: 'p', content: 'Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.', } ] }, { tag: 'article', content: '', children: [ { tag: 'h1', content: 'Array.prototype.some()', }, { tag: 'p', content: 'Метод some() проверяет, удовлетворяет ли хоть какой-нибудь элемент массива условию, заданному в передаваемой функции.', } ] }, { tag: 'article', content: '', children: [ { tag: 'h1', content: 'Array.prototype.reduce()', }, { tag: 'p', content: 'Метод reduce() применяет функцию к аккумулятору и каждому значению массива (слева-направо), сводя его к одному значению.', } ] }, { tag: 'article', content: '', children: [ { tag: 'h1', content: 'Array.prototype.reduceRight()', }, { tag: 'p', content: 'Метод reduceRight() применяет функцию к аккумулятору и каждому значению массива (справа-налево), сводя его к одному значению.', } ] } ] }, ]; function buildTree(data, target) { $('section').attr('id', 'methods'); for (var i = 0; i < data.length; i++) { var item = data[i]; var $tag = $('<' + item.tag + '>').appendTo(target); if (item.content) { $tag.text( item.content ); } if (item.children && item.children.length) { buildTree(item.children, $tag); } } } buildTree(tree, 'body'); task-9 (Замыкания - 1) function createTimer(){ var t1 = performance.now(); return function(){ alert('!'); var t2 = performance.now(); return t2 - t1; } } var timer = createTimer(); alert(timer()); /task-10 (Замыкания - 2) function createAdder(first){ return function(second){ return first + second; } } var hello = createAdder('Hello, '); alert( hello('John') ); alert( hello('Harry') ); var plus = createAdder(5); alert( plus(1) ); // 6 alert( plus(5) ); // 10 //task-11 function makeCounter() { var arr = []; for (var i = 0; i <= 10; i++) (function(i) { var numb = setTimeout(function() { console.log(i); }, 1000 * i); arr.push(numb); })(i); return arr; } var count = makeCounter(); /* Каждую секунду в консоль должно падать значение переменной i на соответствующей итерации цикла for (var i = 0; i < 10; i++) { setTimeout(function() { console.log(i); }, 1000 * i); }*/