Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions js-core/homeworks/homework-10/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>test page</title>
</head>
<body>
<script src="src/main.js"></script>
</body>
</html>
124 changes: 124 additions & 0 deletions js-core/homeworks/homework-10/src/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
/*
*
* Задача 0
*
* Что вернет выражение z(x) ?
* Напишите ответ своими словами как вы понимаете
* В консоле не смотрите, сначала напишите, после проверьте себя
*
* */

let y = 5;
//созадет переменную y, в которую записывает значение 5
let x = () => {
// console.log('We here')
return y;
}
// создает функцию x, которая возврщает 5

let z = t => {
//создает функцию z, с аргументом t, которая перезаписывает y, но снова на 5.
let y = 5;
// return y
// если будетет return, то возьмет отсюда, так как віше не пойдет, найдет y здесь
// console.log('We here')
t();
// вызывает аргумент как функцию, которую потом туда передадим как аргумент
};
console.log(y);
//должно вывести 5, так как обратится к внейшней переменной 11 строка
z(x); // что вернет
//вызывает фунцию z, передает аргументом фунцию x, перезаписывает y, но снова на 5
//и вызывает фунцию x, которая возвращает(В - внимательность!!!!) y. Y возьмет и строки 18
// поигрался, возврщает undefined, потому что функция ничего не возвращает, а только перезаписывает.
// а если не обернуть в console.log вызов на 30 строке, то вообщей ничего не вернет, кроме console.log на 27 строке)))

// /*
// *
// * TASK 1
// * Создайте функцию которая будет превращать
// * передаваемую строку в html тэг
// *
// *
// * */

let $ = function(str) {
if(typeof str == 'string'){
let result = `<${str}></${str}>`
return result
}
};

let createBODY = $('body');
let createDIV = $('div');
console.log(createBODY); // <body></body>
console.log(createDIV); // <div></div>

// /*
// *
// * TASK 2
// *
// * Создайте объект к которому можно будет применить любое число вызовов
// // obj.method().method().method()
// ---------------
// * Передаваемое значение должно возвращаться в виде html тэгов (TASK 1)
// * Передаваемые аргументы должны быть только в виде строки
// * */


var ezjQuery = {
tag: '',
add(str, text){
let elem = text || ''
if(typeof str == 'string'){
this.tag += `<${str}>${elem}</${str}>`;
return this.tag
}
}
};

console.log(ezjQuery.add('body')) // <body></body>
console.log(ezjQuery.add('div')) // <body></body><div></div>
console.log(ezjQuery.add('h1')); // <body></body><div></div><h1></h1>

// /*
// *
// * TASK 3
// * Доработйте метод add чтобы на каждом вызове следующий
// * тэг помещался внутри предыдущего !
// ---
// * И добавьте объекту ezjQuery метод render, который будет возвращать
// * сгенерированную строку
// -----
// * Методу add - второй параметр, который будет размещать
// * информацию внутри тэга
// *
// */

// example
var helloList = ezjQuery
console.log(helloList.add('body')) // <body></body>
console.log(helloList.add('div')) // <body><div></div></body>
console.log(helloList.add('ul')) // <body><div><ul></ul></div></body>
console.log(helloList.add('li', 'Hello')) //<body><div><ul><li>Hello</li></ul></div></body>
console.log(helloList.render());
console.log(helloList); // <body><div><ul><li>Hello</li></ul></div></body>
// Обратите внимание, что после вызова render создание строки началось сначала

var bodyDiv = ezjQuery
.add('body') //<body></body>
.add('div') //<body><div></div></body>
.render();
console.log(bodyDiv); //<body><div></div></body>

// // Для выполнивших все задания
// // сделайте document.write(helloList) увидите результат :)

// // @SUPER
// /*
// * Переименуйте объект ezjQuery в $.
// * Создание перевого метода должено быть без метода
// *
// * $('body').add('li', 'hi').render() // <body><li>hi</li></body>
// *
// * */
1 change: 0 additions & 1 deletion js-core/homeworks/homework-8/src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,6 @@ console.log(validBraces('({[]})')); // => returns true
* */

function sum(num) {
sum.catchNum = 0
if( num>1){
return num + sum(num-1)
}
Expand Down
10 changes: 8 additions & 2 deletions js-core/homeworks/homework-9/src/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,10 +129,16 @@ let junior = {};

// fn.length == arguments.length

function addMethod(object, name, fn) {

const addMethod = (object, name, fn) => {
object[name] = function() {
if (fn.length == arguments.length) {
return fn;
}
};
return fn();
}


addMethod(junior, 'ok', function() {
console.log('zero arguments');
});
Expand Down