Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- </head>
- <body>
- <script>
- // Переменные
- // задача
- // 1. Объявите две переменные: admin и name.
- let admin;
- let name;
- // 2. Запишите строку "Джон" в переменную name.
- name = 'Джон';
- // 3. Скопируйте значение из переменной name в admin.
- admin = name
- // 4. Выведите на экран значение admin, используя функцию alert (должна показать «Джон»).
- alert (admin)
- // 5. Создайте переменную для названия нашей планеты. Как бы вы её назвали?
- const ourPlanet = 'The Earth'
- console.log (ourPlanet)
- // 6. Создайте переменную для хранения имени текущего посетителя сайта. Как бы вы назвали такую переменную?
- let currentUser
- currentUser = 'Ivan'
- console.log (currentUser)
- // Условный оператор
- // задача
- // Выведется ли alert? Да
- if ("0") {
- alert ('Привет');
- }
- // Ответ: все, за исключением null, undefined, 0, пустой строки, NaN или false, вычисляется как true, поэтому "0" - это true, поэтому alert сработает
- // задача
- // Используя конструкцию if..else, напишите код, который получает число через prompt, а затем выводит в alert:
- // • 1, если значение больше нуля,
- // • -1, если значение меньше нуля,
- // • 0, если значение равно нулю.
- // Предполагается, что пользователь вводит только числа.
- let figure = prompt ('Введите пожалуйста число');
- if (figure > 0) {
- alert (1);
- } else if (figure == 0) {
- alert (0);
- } else {
- alert (- 1);
- }
- // задача
- // Перепишите конструкцию if с использованием условного оператора '?':
- // let result;
- // if (a + b < 4) {
- // result = 'Мало';
- // } else {
- // result = 'Много';
- // }
- let a = prompt ('Введите пожалуйста число a', 1);
- let b = prompt ('Введите пожалуйста число b', 2);
- let result = ((Number (a) + Number (b)) < 4) ? alert ('Мало') : alert ('Много');
- // задача
- // Перепишите if..else с использованием нескольких операторов '?'.
- // Для читаемости рекомендуется разбить код на несколько строк.
- // let message;
- //
- // if (login == 'Сотрудник') {
- // message = 'Привет';
- // } else if (login == 'Директор') {
- // message = 'Здравствуйте';
- // } else if (login == '') {
- // message = 'Нет логина';
- // } else {
- // message = '';
- // }
- let login = prompt ('Вы кто?', 'Сотрудник');
- let message = (login == 'Сотрудник') ? 'Привет' :
- (login == 'Директор') ? 'Здравствуйте' :
- (login == '') ? 'Нет логина' :
- '';
- alert (message);
- //
- // Функции
- // задача
- // Следующая функция возвращает true, если параметр age больше 18.
- // В ином случае она запрашивает подтверждение через confirm и возвращает его результат:
- // function checkAge(age) {
- // if (age > 18) {
- // return true;
- // } else {
- // // ...
- // return confirm('Родители разрешили?');
- // }
- // }
- // Будет ли эта функция работать как-то иначе, если убрать else?
- // Ответ: если убрать else , то все будет работать также
- function checkAge(age) {
- if (age > 18) {
- return true;
- } else {
- // ...
- return confirm ('Родители разрешили?');
- }
- }
- console.log ("возраст больше 18?" + " " + checkAge (12));
- // задача
- // function checkAge(age) {
- // if (age > 18) {
- // return true;
- // }
- // // ...
- // return confirm('Родители разрешили?');
- // }
- // Есть ли хоть одно отличие в поведении этого варианта?
- // Ответ: нет отличий
- // задача
- // Следующая функция возвращает true, если параметр age больше 18.
- // В ином случае она задаёт вопрос confirm и возвращает его результат.
- // function checkAge(age) {
- // if (age > 18) {
- // return true;
- // } else {
- // return confirm('Родители разрешили?');
- // }
- // }
- // Перепишите функцию, чтобы она делала то же самое, но без if, в одну строку.
- function checkAge2(age) {
- return result = (age > 18) ? true : confirm ('Родители разрешили?');
- }
- let age2 = prompt ('Сколько вам лет?', 19);
- console.log ("возраст больше 18?" + " " + checkAge2 (age2));
- // задача
- // Сделайте два варианта функции checkAge:
- // 1. Используя оператор ?
- // 2. Используя оператор ||
- // Решение 1. Используя оператор ?
- function checkAge3(age) {
- return result = (age > 18) ? true : confirm ('Родители разрешили?');
- }
- let age3 = prompt ('Сколько вам лет?', 19);
- console.log ("возраст больше 18?" + " " + checkAge3 (age3));
- // Решение 2. Используя оператор ||
- function checkAge4(age) {
- return result = (age > 18 || confirm ('Родители разрешили?')) ? true : false;
- }
- let age4 = prompt ('Сколько вам лет?', 19);
- console.log ("возраст больше 18?" + " " + checkAge4 (age4));
- // задача
- // Напишите функцию min(a,b), которая возвращает меньшее из чисел a и b.
- // Пример вызовов:
- // min(2, 5) == 2
- // min(3, -1) == -1
- // min(1, 1) == 1
- function min(a, b) {
- return Math.min (a, b);
- }
- let a1 = prompt ("Введите пожалуйста число a1", 1);
- let b1 = prompt ("Введите пожалуйста число b1", 3);
- console.log ("Минимальное число = " + min (a1, b1));
- //
- // задача
- // Напишите функцию pow(x,n), которая возвращает x в степени n. Иначе говоря, умножает x на себя n раз и возвращает результат.
- // pow(3, 2) = 3 * 3 = 9
- // pow(3, 3) = 3 * 3 * 3 = 27
- // pow(1, 100) = 1 * 1 * ...* 1 = 1
- // Создайте страницу, которая запрашивает x и n, а затем выводит результат pow(x,n).
- // P.S. В этой задаче функция обязана поддерживать только натуральные значения n, т.е. целые от 1 и выше.
- function pow(x, n) {
- if (n == 0) { // для нулевой степени
- return 1;
- } else if (n == 1) { // для первой степени
- return x;
- } else if (n > 1) { // для положительной степени
- let base = x;
- for (let i = 1; i < n; i ++) {
- x = base * x;
- }
- return x
- } else { // для отрицательной степени
- let base = x;
- for (let i = - 1 * n; i > 0; i --) {
- x = x / base;
- }
- return x
- }
- }
- let x = prompt ("Введите пожалуйста число x", 3);
- let n = prompt ("Введите пожалуйста целое число n", 3);
- console.log (`${x} в степени ${n} = ` + pow (x, n));
- // Стрелочные функции
- // задача
- // Замените код Function ask стрелочной функцией:
- // function ask(question, yes, no) {
- // if (confirm(question)) yes()
- // else no();
- // }
- //
- // ask(
- // "Вы согласны?",
- // function() { alert("Вы согласились."); },
- // function() { alert("Вы отменили выполнение."); }
- // );
- //
- function ask(question, yes, no) {
- if (confirm (question)) yes ()
- else no ();
- }
- ask (
- "Вы согласны?",
- () => {
- alert ("Вы согласились.");
- }, // в стрелочной нотации вместо слова function пишем (*args,**kwargs)=> {действие которое выполняет функция}
- () => {
- alert ("Вы отменили выполнение.");
- }
- );
- console.log (ask ("Вы согласны?",
- function () {
- alert ("Вы согласились.");
- },
- function () {
- alert ("Вы отменили выполнение.");
- }
- ));
- // Массивы
- // задача
- // Что выведет следующий код?
- let fruits = ["Яблоки", "Груша", "Апельсин"];
- // Ответ: код выводит Array(3) ["Яблоки", "Груша", "Апельсин"]
- console.log (fruits);
- // добавляем новое значение в "копию"
- let shoppingCart = fruits;
- shoppingCart.push ("Банан");
- console.log (fruits);
- // что в fruits?
- // Ответ: в fruits будет находиться массив ["Яблоки", "Груша", "Апельсин","Банан"]
- alert (fruits.length); // 4
- // задача
- // Давайте произведём 5 операций с массивом.
- // 1. Создайте массив styles с элементами «Джаз» и «Блюз».
- // 2. Добавьте «Рок-н-ролл» в конец.
- // 3. Замените значение в середине на «Классика». Ваш код для поиска значения в середине должен работать для массивов с любой длиной.
- // 4. Удалите первый элемент массива и покажите его.
- // 5. Вставьте «Рэп» и «Регги» в начало массива.
- // Массив по ходу выполнения операций:
- // Джаз, Блюз
- // Джаз, Блюз, Рок-н-ролл
- // Джаз, Классика, Рок-н-ролл
- // Классика, Рок-н-ролл
- // Рэп, Регги, Классика, Рок-н-ролл
- let styles = ["Джаз", "Блюз"]; // Создайте массив styles с элементами «Джаз» и «Блюз».
- styles.push ("Рок-н-ролл"); //Добавьте «Рок-н-ролл» в конец.
- let len = (styles.length - styles.length % 2) / 2;// делим на цело , чтобы найти индекс среднего элемента массива
- styles[len] = "Классика"; // Замените значение в середине на «Классика».
- styles.splice (0, 1); // Удалите первый элемент массива и покажите его.
- console.log (styles);
- styles.unshift ("Рэп", "Регги");//Вставьте «Рэп» и «Регги» в начало массива.
- console.log (styles);
- // задача
- // Каков результат? Почему?
- let arr = ["a", "b"];
- arr.push (function () {
- alert (this);
- });
- console.log (arr); // здесь просто выводится массив ["a", "b", f]
- console.log (arr[2] ()); // здесь выводится результат работы анонимной функции function() , которая выводит в поп-ап окно весь массив arr
- // Объекты
- // задача
- // Напишите код, выполнив задание из каждого пункта отдельной строкой:
- // 1. Создайте пустой объект user.
- // 2. Добавьте свойство name со значением John.
- // 3. Добавьте свойство surname со значением Smith.
- // 4. Измените значение свойства name на Pete.
- // 5. Удалите свойство name из объекта.
- let user = {}; // Создайте пустой объект user.
- user.name = 'John'; //Добавьте свойство name со значением John.
- user.surname = 'Smith'; //Добавьте свойство surname со значением Smith.
- user.name = 'Pete'; // Измените значение свойства name на Pete.
- delete user.name; // Удалите свойство name из объекта.
- // задача
- // Напишите функцию isEmpty(obj), которая возвращает true, если у объекта нет свойств, иначе false.
- // Должно работать так:
- // let schedule = {};
- // alert( isEmpty(schedule) ); // true
- // schedule["8:30"] = "get up";
- // alert( isEmpty(schedule) ); // false
- function isEmpty(obj) {
- let i = 0; // счетчик свойств объекта
- for (key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
- i ++ // на каждой итерации цикла увеличиваем счетчик свойств объекта
- }
- return (i == 0) ? true : false; // если счетчик свойств = 0 то true
- }
- // задача
- // Можно ли изменить объект, объявленный с помощью const? Как вы думаете?
- const user = {
- name: "John"
- };
- // Ответ: изменить свойства объекта, объявленного с помощью const можно
- user.name = 'blabla';
- console.log (user.name);
- user.surname = 'ahaha';
- console.log (user.surname);
- // это будет работать?
- // user.name = "Pete";
- // Ответ: работать будет. ответ выше
- // задача
- // У нас есть объект, в котором хранятся зарплаты нашей команды:
- // let salaries = {
- // John: 100,
- // Ann: 160,
- // Pete: 130
- // }
- // Напишите код для суммирования всех зарплат и сохраните результат в переменной sum. Должно получиться 390.
- // Если объект salaries пуст, то результат должен быть 0.
- let salaries = {
- John: 100,
- Ann: 160,
- Pete: 130
- };
- let salaries2 = {};
- function sumx(obj) {
- let res = 0; // сюда суммируем значения свойств объекта
- for (let key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
- res += obj[key]; // на каждой итерации цикла увеличиваем счетчик свойств объекта
- }
- return res; // если счетчик свойств = 0 то true
- }
- console.log (sumx (salaries)); // 390 так как объект salaries не пуст
- console.log (sumx (salaries2)); // 0 так как объект salaries2 пуст
- // задача
- // Создайте функцию multiplyNumeric(obj), которая умножает все числовые свойства объекта obj на 2.
- // Например:
- // // до вызова функции
- // let menu = {
- // width: 200,
- // height: 300,
- // title: "My menu"
- // };
- // multiplyNumeric(menu);
- // // после вызова функции
- // menu = {
- // width: 400,
- // height: 600,
- // title: "My menu"
- // };
- // Обратите внимание, что multiplyNumeric не нужно ничего возвращать. Следует напрямую изменять объект.
- // P.S. Используйте typeof для проверки, что значение свойства числовое.
- let menu = {
- width: 200,
- height: 300,
- title: "My menu"
- };
- function multiplyNumeric(obj) {
- for (let key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
- (typeof (obj[key]) == "number") ? obj[key] = obj[key] * 2 : obj[key]; // на каждой итерации цикла проверяем является ли значение свойства объекта числом и если да, то умножаем на 2
- }
- return obj;
- }
- console.log (multiplyNumeric (menu));
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement