|
| 1 | +//Task0 |
| 2 | +let y = 5; //объявлена глобальная переменная 'y' со значением 5 |
| 3 | +let x = () => y; //объявлена стрелочная функция 'x' без аргументов которая возвращает 'y', тоесть 5 |
| 4 | + |
| 5 | +let z = t => { //объявлена стрелочная функция 'z' с аргументом 't' |
| 6 | + let y = 5; //oбъявлена локальная переменная 'y' со значением 5 |
| 7 | + t(); // 't' это колбек функция которую вызвали |
| 8 | +}; |
| 9 | +console.log(y); //выводит в консоль глобальную переменную 'y' объявленую в 2 строке, соответственно выведет 5 |
| 10 | + |
| 11 | +z(x); // что вернет //вызываем функцию 'z' с параметром 'x' который является функцией и возвращает глобальную переменную 'y'. Сама функция ничего не возвращает. Результатом будет undefined |
| 12 | + |
| 13 | + |
| 14 | +//Task1 |
| 15 | +let $ = function(str) { |
| 16 | + return `<${str}></${str}>`; |
| 17 | +}; |
| 18 | + |
| 19 | +let createBODY = $('body'); |
| 20 | +let createDIV = $('div'); |
| 21 | +console.log('Task1 --->', createBODY); // <body></body> |
| 22 | +console.log('Task1 --->', createDIV); // <div></div> |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +// //Task2 |
| 27 | +// let ezjQuery = { |
| 28 | +// strTag: '', |
| 29 | +// add(str) { |
| 30 | +// return this.strTag = this.strTag + `<${str}></${str}>`; |
| 31 | +// } |
| 32 | +// }; |
| 33 | + |
| 34 | + |
| 35 | +// console.log('Task2 --->', ezjQuery.add('body')); // <body></body> |
| 36 | +// console.log('Task2 --->', ezjQuery.add('div')); // <body></body><div></div> |
| 37 | +// console.log('Task2 --->', ezjQuery.add('h1')); // <body></body><div></div><h1></h1> |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +//Task3 |
| 42 | +let ezjQuery = { |
| 43 | + //strTag: '', |
| 44 | + tags: [], |
| 45 | + add(str, text) { |
| 46 | + this.tags.push({tagName: str, text: text || ''}); |
| 47 | + return this; |
| 48 | + //return this.strTag = this.strTag + `<${str}></${str}>`; |
| 49 | + }, |
| 50 | + render() { |
| 51 | + let strTag = ''; |
| 52 | + for(let i = 0; i < this.tags.length; i++) { |
| 53 | + if(this.tags[i].text == '') { |
| 54 | + strTag += `<${this.tags[i].tagName}>`; |
| 55 | + } else { |
| 56 | + strTag += `<${this.tags[i].tagName}>${this.tags[i].text}`; |
| 57 | + }; |
| 58 | + }; |
| 59 | + for(let i = this.tags.length - 1; i >= 0; i--) { |
| 60 | + strTag += `</${this.tags[i].tagName}>`; |
| 61 | + }; |
| 62 | + this.tags = []; |
| 63 | + return strTag; |
| 64 | + } |
| 65 | +}; |
| 66 | + |
| 67 | +let helloList = ezjQuery |
| 68 | + .add('body') // <body></body> |
| 69 | + .add('div') // <body><div></div></body> |
| 70 | + .add('ul') // <body><div><ul></ul></div></body> |
| 71 | + .add('li', 'Hello') //<body><div><ul><li>Hello</li></ul></div></body> |
| 72 | + .render(); |
| 73 | +console.log('Task3 --->', helloList); // <body><div><ul><li>Hello</li></ul></div></body> |
| 74 | +document.write(helloList) |
| 75 | +// Обратите внимание, что после вызова render создание строки началось сначала |
| 76 | + |
| 77 | +let bodyDiv = ezjQuery |
| 78 | + .add('body') //<body></body> |
| 79 | + .add('div') //<body><div></div></body> |
| 80 | + .render(); |
| 81 | +console.log('Task3 --->', bodyDiv); //<body><div></div></body> |
0 commit comments