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
151 changes: 151 additions & 0 deletions HW2_2/HW2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
'use strict';

/*
1. Дан код:
var a = 1, b = 1, c, d;
c = ++a; alert(c); // 2 Здесь инкремент увеличиавет переменную на 1. Префиксная форма.
d = b++; alert(d); // 1 Здесь постфиксная форма, поэтому ззаписывается 1.
c = (2+ ++a); alert(c); // 5 Здесь 2+ инкремент увеличивает ++2, т.е. 3
d = (2+ b++); alert(d); // 4 Здесь опять постфиксная форма, т.е 2+ 2, но в перенменной будет 3
alert(a); // 3 По итогу переменной префиксная форма дала 3
alert(b); // 3 По итогу переменной постфиксаня форма тоже дала 3.
Почему код даёт именно такие результаты?
*/


/*
2. Чему будет равен x в примере ниже?
var a = 2;
var x = 1 + (a *= 2);
x = 5 (1 + (2 * 2)
*/



/*
3. Объявить две целочисленные переменные a и b и задать им произвольные начальные значения.
Затем написать скрипт, который работает по следующему принципу:
1. если a и b положительные, вывести их разность;*/

let a = 4, b = 3;

if (a >= 0 && b >= 0){
console.log(a - b);
}

/*
2. если а и b отрицательные, вывести их произведение;*/

let a = -4, b = -3;

if (a <= 0 && b <= 0){
console.log(a * b);
}

/*
3. если а и b разных знаков, вывести их сумму;
ноль можно считать положительным числом. ### */

let a = 4, b = -3;

if (a * b < 0){
console.log(a + b);
}

/*
4. Присвоить переменной а значение в промежутке [0..15].
С помощью оператора switch организовать вывод чисел от a до 15. ### */

let a = 5;
switch (a){
case 0:
document.write("0");
case 1:
document.write("1");
case 2:
document.write("2");
case 3:
document.write("3");
case 4:
document.write("4");
case 5:
document.write("5");
case 6:
document.write("6");
case 7:
document.write("7");
case 8:
document.write("8");
case 9:
document.write("9");
case 10:
document.write("10");
case 11:
document.write("11");
case 12:
document.write("12");
case 13:
document.write("13");
case 14:
document.write("14");
case 15:
document.write("15");

}
/*
5. Реализовать основные 4 арифметические операции в виде функций с двумя параметрами.
Обязательно использовать оператор return. ###*/

function sumnumber (a, b) {
return a + b;
}

function sumsub (a, b) {
return a - b;
}

function summulti (a, b) {
return a * b;
}

function sumdivision (a, b) {
return a / b;
}

/*
6. Реализовать функцию с тремя параметрами: function mathOperation(arg1, arg2, operation),
где arg1, arg2 – значения аргументов, operation – строка с названием операции.
В зависимости от переданного значения операции выполнить одну из арифметических операций (использовать функции из пункта 3) и
вернуть полученное значение (использовать switch). ### */

function mathOperation(arg1, arg2, operation){
switch (operation){
case "+":
return sumnumber(arg1, arg2);
case "-":
return sumsub (arg1, arg2);
case "*":
return summulti(arg1, arg2);
case "/":
return sumdivision(arg1, arg2);
}
}

console.log(mathOperation(4,8,"+"));
console.log(mathOperation(4,8,"-"));
console.log(mathOperation(4,8,"*"));
console.log(mathOperation(4,8,"/"));


/*
7. *Сравнить null и 0. Попробуйте объяснить результат. ###

null - значение не известно
0 - число
null > 0 и null == 0 выдаст false.
Если сравнить null >= 0 ты выдаст true.*/

/*
8. *С помощью рекурсии организовать функцию возведения числа в степень. Формат: function power(val, pow),
где val – заданное число, pow – степень.*/

11 changes: 11 additions & 0 deletions HW2_2/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script defer src="HW2.js">
</script>
</body>
</html>
128 changes: 128 additions & 0 deletions HW3/HW3.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
'use strict';

/*
1.2 С помощью цикла for написать алгоритм для вывода чисел от 0 до 10 включительно, чтобы результат выглядел так:
0 – это ноль
1 – нечетное число
2 – четное число
3 – нечетное число
10 – четное число*/

for (let a = 0; a <= 10; a++) {
if (a == 0) {
console.log(a + " - Это ноль");
} else if ( a % 2 == 0) {
console.log(a + " - это четное число")
} else {
console.log(a + " - это нечетное число")
}
}


2. /* Выведите в консоль значения, указанные рядом с комментариями: */

const post = {
author: "John", //вывести этот текст
postId: 23,
comments: [
{
userId: 10,
userName: "Alex",
text: "lorem ipsum",
rating: {
likes: 10,
dislikes: 2 //вывести это число
}
},
{
userId: 5, //вывести это число
userName: "Jane",
text: "lorem ipsum 2", //вывести этот текст
rating: {
likes: 3,
dislikes: 1
}
},
]
}

console.log(post.author);
console.log(post.comments[0].rating.dislikes);
console.log(post.comments[1].userId);
console.log(post.comments[1].text);

/*
3. Перед вами находится массив с продуктами, сегодня распродажа и вам нужно на каждый товар применить скидку
15%, можете использовать метод forEach*/

const products = [
{
id: 3,
price: 200,
},
{
id: 4,
price: 900,
},
{
id: 1,
price: 1000,
},
];

products.forEach(item => {
item.price = item.price - item.price * 0.15
});

/*
4. Перед вами находится массив с продуктами в интернет-магазине. Вам нужно:
1 Получить все товары, у которых есть фотографии, можете использовать метод filter
2 Отсортируйте товары по цене (от низкой цены к высокой), можете использовать метод sort*/

const products = [
{
id: 3,
price: 127,
photos: [
"1.jpg",
"2.jpg",
]
},
{
id: 5,
price: 499,
photos: []
},
{
id: 10,
price: 26,
photos: [
"3.jpg"
]
},
{
id: 8,
price: 78,
},
];

/* Первое задание не сообразил как сделать*/
/* Ниже по второму заданию*/

const sort = products.sort(function(item1, item2){
return item1.price - item2.price;
})

/*
5. Нарисовать горку с помощью console.log (используя цикл for), как показано на рисунке,
только у вашей горки должно быть 20 рядов, а не 5:
x
xx
xxx
xxxx
xxxxx/*/

for (let x = "x"; x.length <= 20; x += "x"){
console.log(x);
}
11 changes: 11 additions & 0 deletions HW3/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script defer src="HW4.js">
</script>
</body>
</html>
80 changes: 80 additions & 0 deletions HW4_4/HW4.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
'use strict';

/*1
Написать функцию, преобразующую число в объект. Передавая на вход число в диапазоне [0, 999],
мы должны получить на выходе объект, в котором в соответствующих свойствах описаны разряды числа:
- единицы (в свойстве units)
- десятки (в свойстве tens)
- сотни (в свойстве hundereds)
Например, для числа 45 мы должны получить следующий объект:
{
units: 5, //это единицы
tens: 4, //это десятки
hundreds: 0, //это сотни
}
Если число было передано вне [0, 999] диапазона, не целое число или вообще не число,
необходимо выдать соответствующее сообщение с помощью console.log и вернуть пустой объект.*/

function NumberObject(num) {
if (!Number.isInteger(num) || num < 0 || num > 999){
console.log("Диапазон ЧИСЕЛ должен быть [0, 999].");
return {};
}
return {
units: num % 10,
hundreds: Math.floor(num / 100),
tens: Math.floor(num / 10) % 10,
}
}

console.log(NumberObject(444));


/*1.1
Сделайте в стиле es5, а затем в стиле es6 (по аналогии из урока), конструктор Product, который принимает
параметры name и price, сохраните их как свойства объекта. Также объекты типа Product должны иметь метод
make25PercentDiscount, который будет уменьшать цену в объекте на 25%.*/


/*es5*/
function Product(name, price) {
this.name = name;
this.price = price;
}

Product.prototype.make25PercentDiscount = function () {
this.price = this.price - (this.price * 25 / 100)
};

const product1 = new Product("Продукт", 230)
product1.make25PercentDiscount();

console.log(product1);

/*es6*/

class Product {
constructor(name, price) {
this.name = name;
this.price = price;
}

make25PercentDiscount() {
this.price = this.price - (this.price * 25 / 100)
}
}

const product1 = new Product("Продукт", 230)
product1.make25PercentDiscount();

console.log(product1);

/*1.2
Сделайте в стиле es5, а затем в стиле es6 (по аналогии из урока),
а) конструктор Post, который принимает параметры author, text, date и сохраняет их как свойства объекта. Объекты
типа Post должны иметь метод edit, который будет принимать текст и записывать его в свойство text объекта.
б) конструктор AttachedPost, который принимает параметры author, text, date. Проинициализируйте эти свойства с
помощью конструктора Post, чтобы не дублировать код. Также в конструкторе AttachedPost должно создаваться
свойство highlighted со значением false. Унаследуйте в объектах типа AttachedPost методы из Post.
Объекты типа AttachedPost должны иметь метод makeTextHighlighted, который будет назначать свойству
highlighted значение true.*/
Loading