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>
134 changes: 134 additions & 0 deletions js-core/homeworks/homework-10/src/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/*
*
* Задача 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: '',
state: [],
add(str, text){
let elem = text || ''
if(typeof str == 'string'){
this.tag += `<${str}>${elem}</${str}>`
this.state.push(str);
return this
}
},
// render(){
// let elem = this.text || ''
// let result = this.tag += `<${this.state[0]}>${elem}</${this.state[0]}>`
// // this.tag = ''
// // console.log(this.tag)
// return result
// }
};

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

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

// example
var helloList = ezjQuery
.add('body') // <body></body>
.add('div') // <body><div></div></body>
.add('ul') // <body><div><ul></ul></div></body>
.add('li', 'Hello') //<body><div><ul><li>Hello</li></ul></div></body>
// .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>
*
* */
10 changes: 10 additions & 0 deletions js-core/homeworks/homework-11/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>
49 changes: 49 additions & 0 deletions js-core/homeworks/homework-11/src/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
*
* Сделайте 4 объекта - не усложняйте, просто наследование
* через __proto__
- Пользователь
- Верифицированный пользователь(админ)
- Гость
- База данных
- База хранит информацию о пользователях
- Пользователи знают мыло админа
- админ знает пароль от базы данных
- Гости могут зарегистрироваться в базе данных
*
* */
let user = {
name: 'userName',
}
let admin = {
adminPass:'adminPass',
eMail: 'adminEmail'
}
let database = {
newUser:{},
password: 'databasePassword'
}
let guest = {

}

database.registerGuest = function() {
let newUserName = prompt('введите имя');
let newUserPass = prompt('придумайте пароль')
database.newUser.name = newUserName;
database.newUser.pass = newUserPass
console.log(database.newUser)
}

guest.__proto__.registerGuest = database.registerGuest
database.__proto__ = user
user.__proto__.eMail = admin.eMail
admin.__proto__.password = database.password;
console.log(`admin password for databae '${admin.password}'`)
console.log(`admin mail - '${user.eMail}'`)
console.log(guest.registerGuest())
console.log(database)




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