123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- /* ЗАДАНИЕ makeProfileTimer */
- function makeProfileTimer() {
- let start = performance.now();
- return () => performance.now() - start;
- }
- let timer = makeProfileTimer();
- alert('Замеряем время работы этого alert');
- alert(timer());
- /* ЗАДАНИЕ makeSaver */
- function makeSaver(func){
- let saver = func();
- return () => saver;
- }
- let saver = makeSaver(Math.random);
- let value1 = saver()
- let value2 = saver()
- console.log(value1 === value2);
- let saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)])
- let value3 = saver2()
- let value4 = saver2()
- console.log(value3 === value4);
- /* ЗАДАНИЕ Final Countdown */
- ((n=5) => {
- setTimeout(function run() {
- console.log(n--);
- let stop = setTimeout(run, 1000);
- if(n===0) {clearTimeout(stop); console.log("поехали!")}
- }, 1000)
- })();
- /* ЗАДАНИЕ myBind */
- function myBind(func, context, args){
- return (...undArgs) => {
- let counter = 0;
- args.forEach((item, index) => {
- (item === undefined) && args.splice(index, 1, undArgs[counter++]);
- })
- return func.apply(context, args);
- }
- }
- let pow5 = myBind(Math.pow, Math, [undefined, 5]);
- let cube = myBind(Math.pow, Math, [undefined, 3])
- console.log(pow5(2));
- console.log(cube(3));
- let chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5,undefined, 8,undefined, 9]);
- console.log(chessMin(-1,-5,3,15));
- let zeroPrompt = myBind(prompt, window, [undefined, "0"]);
- let someNumber = zeroPrompt("Введите число");
- console.log(someNumber);
- console.log(myBind((...params) => params.join(''), null, [undefined, 'b', undefined, undefined, 'e', 'f'])('a','c','d'));
- // Переделанная таблицы умножения
- function multiplicationTable() {
- let table = document.createElement('table');
- table.style.fontFamily = 'sans-serif';
- let arrNum = [];
- for (let i = 1; i <= 10; i++) {
- arrNum[i] = [];
- for (let j = 1; j <= 10; j++) {
- arrNum[i][j-1] = i * j;
- }
- }
- for (let row = 1; row <= arrNum.length-1; row++) {
- let tr = document.createElement('tr');
- for (let col = 0; col < arrNum.length-1; col++) {
- let td = document.createElement('td');
- td.innerText = arrNum[row][col];
- td.onmouseout = function(event){
- this.style.backgroundColor = '';
- Array.from(this.parentElement.children).forEach(item => item.style.backgroundColor = '');
- colTable(this.cellIndex, '');
- }
- td.onmouseover = function(event){
- Array.from(this.parentElement.children).forEach(item => item.style.backgroundColor = '#aaa');
- colTable(this.cellIndex, '#aaa');
- this.style.backgroundColor = '#6d75cb';
- }
- tr.append(td);
- }
- for (let cell of tr.cells) {
- cell.style.border = '2px solid #000';
- cell.style.padding = '10px';
- cell.style.textAlign = 'center';
- cell.classList.add('td');
- }
- table.append(tr);
- }
- document.body.append(table);
- function colTable(index, str){
- for (let row of document.querySelector('table').rows) {
- row.cells[index].style.backgroundColor = str;
- }
- }
- } // Таблица умножения
- multiplicationTable();
|