-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
224 lines (173 loc) · 8.4 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
// Функции - Functions
// Функции нужны для возможности повторного использования блока кода, но уже не набирая его повторно и повторно
// Функция объявляется следующим образом
function showMessage() {
console.log('Написал первую функцию на марафоне'); // Эта часть называется телом функции
}
// Для вызова функции, необходимо набрать его имя
showMessage();
// Теперь, чтобы повторно вывести код из тела функции, достаточно набрать ещё раз его имя, для вызова функции
showMessage();
// Переменные, объявленные внутри функции, называются локальными. Соответсвенно, видны только внутри самой функции
function helloMessage() {
let hiFanil = 'Сәлам, Фәнил';
console.log(hiFanil);
}
// Вызываем функцию, мы должны увидеть сообщение. Но попытке вывести в лог содержимое самой переменной, должны получить ошибку. Т.ч. переменная не была объявлена\
helloMessage();
// console.log(hiFanil);
// Получили ошибку, пры выводу в консоль.
// Функции имеют доступ к внешним переменным, сейчас объявлю переменную и буду использовать в теле функции
let globalMessage = 'Hello world';
function usingGlobalVariable() {
console.log(globalMessage);
}
usingGlobalVariable();
console.log(globalMessage);
// Должен два раза получить Hello world - Done
// Если глобальную переменной присвоить новое значение внутри функции, то он перепишет его после вызова
function changeGlobalVariable() {
globalMessage = 'I learn';
let message = globalMessage + ' Java Script';
console.log(message);
}
console.log(globalMessage); // Check variable before will call function
changeGlobalVariable();
console.log(globalMessage); //Check variable after calling function
// Variable has been changed
// Если в теле функции объявлена переменная с таким же именем (локальная переменная), то глобальная останется без изменений. Т.к. функция в первую
// очередь использует локальную
let sameVar = 'Я глобальная переменная sameVar';
function usingLocalVarWithSameName() {
let sameVar = 'А я локальная переменная sameVar';
console.log(sameVar);
}
// Теперь sameVar будет "Я глобальная переменная sameVar", до и после вызова функции
console.log(sameVar);
usingLocalVarWithSameName();
console.log(sameVar);
// Параметры - Parametrs
// Параметры используются для передачи какой-либо информации внутрь функции. Их также называют аргументами функции
function usingParams(textP, nameP) {
textP = textP + ',';
let userMessage = textP + ' ' + nameP;
console.log(userMessage);
// console.log(textP);
}
let textP = 'Хаюшки';
usingParams(textP, 'Гость');
usingParams('Пока', 'Гость');
// При помощи параметров, наша функция была использована для приветствия с посетителем и при прощании
// Параметры являются локальными переменными
console.log(textP);
// Для перменной можно задавать значения по умолчанию, во время вызова функции.
// Сейчас этого нет, пробую вызвать функцию без второго параметра
usingParams('Привет');
// Объявляем функцию с параметром по умолчанию
function withDeafaultParam(user, age = '25') {
let usersAge = user + ' ' + age + ' ' + 'лет';
console.log(usersAge);
}
withDeafaultParam('Фаниль', '27');
withDeafaultParam('Антон');
// Задачи
// function checkAge(age) {
// if (age > 18) {
// return true;
// }
// return confirm('Родители разрешили?');
// }
// console.log(checkAge(19));
// console.log(checkAge(15));
// function checkAge(age) {
// if (age > 18) {
// return true;
// } else {
// return confirm('Родители разрешили?');
// }
// }
// function checkAgeWithAskSymbol(age) {
// return (age > 18) ? true : confirm('Родители разрешили?');
// }
// checkAgeWithAskSymbol(11);
// function checkAgeWithOR(age) {
// return age > 18 || confirm('Родители разрешили?');
// }
// checkAgeWithOR(2);
// Напишите функцию min(a,b), которая возвращает меньшее из чисел a и b.
function min(a, b) {
if (a < b) {
return a;
} else if (a == b) {
return 'Мы такое не сравниваем';
} else {
return b;
}
}
console.log('Min between 54, 44 = ', min(54, 44));
console.log('Min between 24, 44 = ', min(24, 44));
console.log('Min between -54, 78 = ', min(-54, 78));
console.log('Min between 23, 23 = ', min(23, 23));
// Напишите функцию pow(x,n), которая возвращает x в степени n. Иначе говоря, умножает x на себя n раз и возвращает результат.
function pow(x, n) {
return x ** n;
}
console.log('Число 4 в степени 2 = ', pow(4, 2));
console.log('Число 3 в степени 2 = ', pow(3, 2));
console.log('Число 3 в степени 3 = ', pow(3, 3));
console.log('Число 3 в степени 4 = ', pow(3, 4));
// Создайте простой калькулятор Calc, который будет принимать значение a и значение b, а так же идентификатор нужного действия.
// Пример вызова такой функции
// Calc(‘sum’, 1, 2) - возвращает 3
// Calc(‘multi’, 1, 2) - возвращает 2
// И так далее, со всеми математическими действиями, которые вы изучили в задаче #7
// Но и это еще не все.
// Ваш калькулятор должен возвращать сообщение “Error” в том случае если вы не указали все 3 параметра или если вычисляемые значения оказались не числами.
// В случае с неверным “идентификатором нужного действия” возвращайте “unknown operation”
function Calc(mathOperation, a, b) {
if (
mathOperation == undefined ||
a == undefined ||
b == undefined ||
typeof a !== 'number' ||
typeof b !== 'number'
) {
return 'Error';
} else if (mathOperation == 'sum') {
return a + b;
} else if (mathOperation == 'multi') {
return a * b;
} else if (mathOperation == 'Subt') {
return a - b;
} else if (mathOperation == 'Dvsn') {
return a + b;
} else if (mathOperation == 'Exp') {
return a ** b;
} else if (mathOperation == 'Rmndr') {
return a % b;
}
return 'unknown operation';
}
console.log(Calc('sum', 2, 3));
console.log(Calc('multi', 2, 3));
console.log(Calc('Subt', 2, 3));
console.log(Calc('Dvsn', 2, 3));
console.log(Calc('Exp', 2, 3));
console.log(Calc('Rmndr', 2, 3));
console.log(Calc('su', 2, 3));
console.log(Calc('su', '', 3));
console.log(Calc('su', 2, ''));
console.log(Calc('sum', 3));
// let mathOperation = prompt('Что ты хочешь сделать с числами? \n Умножить: multi \n Сложить: sum');
// let a = +prompt('Введите число', 7);
// let b = +prompt('Введите число', 2);
// alert(Calc(mathOperation, a, b));
// let k = 'l';
// let t = +k;
// let five = 5;
// let sum = t + five;
// console.log(typeof t);
// console.log(sum);
// console.log(typeof sum);
// console.log(typeof NaN);
// console.log(isNaN(five));