Advertisement
Rusfatal

JS_korus_Tasks_1

Apr 18th, 2022
1,040
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 18.51 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8.  
  9. <script>
  10.  
  11.     // Переменные
  12.     // задача
  13.     // 1.   Объявите две переменные: admin и name.
  14.     let admin;
  15.     let name;
  16.     // 2.   Запишите строку "Джон" в переменную name.
  17.     name = 'Джон';
  18.     // 3.   Скопируйте значение из переменной name в admin.
  19.     admin = name
  20.     // 4.   Выведите на экран значение admin, используя функцию alert (должна показать «Джон»).
  21.     alert (admin)
  22.     // 5.   Создайте переменную для названия нашей планеты. Как бы вы её назвали?
  23.     const ourPlanet = 'The Earth'
  24.     console.log (ourPlanet)
  25.     // 6.   Создайте переменную для хранения имени текущего посетителя сайта. Как бы вы назвали такую переменную?
  26.     let currentUser
  27.     currentUser = 'Ivan'
  28.     console.log (currentUser)
  29.  
  30.     // Условный оператор
  31.     // задача
  32.     // Выведется ли alert? Да
  33.     if ("0") {
  34.         alert ('Привет');
  35.     }
  36.     // Ответ: все, за исключением null, undefined, 0, пустой строки, NaN или false, вычисляется как true, поэтому "0" - это true, поэтому alert сработает
  37.  
  38.     //     задача
  39.     //     Используя конструкцию if..else, напишите код, который получает число через prompt, а затем выводит в alert:
  40.     // •  1, если значение больше нуля,
  41.     // •  -1, если значение меньше нуля,
  42.     // •  0, если значение равно нулю.
  43.     //         Предполагается, что пользователь вводит только числа.
  44.     let figure = prompt ('Введите пожалуйста число');
  45.     if (figure > 0) {
  46.         alert (1);
  47.     } else if (figure == 0) {
  48.         alert (0);
  49.     } else {
  50.         alert (- 1);
  51.     }
  52.  
  53.  
  54.     // задача
  55.     // Перепишите конструкцию if с использованием условного оператора '?':
  56.     // let result;
  57.     // if (a + b < 4) {
  58.    //      result = 'Мало';
  59.    // } else {
  60.    //     result = 'Много';
  61.    // }
  62.    let a = prompt ('Введите пожалуйста число a', 1);
  63.    let b = prompt ('Введите пожалуйста число b', 2);
  64.    let result = ((Number (a) + Number (b)) < 4) ? alert ('Мало') : alert ('Много');
  65.  
  66.    // задача
  67.    // Перепишите if..else с использованием нескольких операторов '?'.
  68.    //     Для читаемости рекомендуется разбить код на несколько строк.
  69.    //     let message;
  70.    //
  71.    // if (login == 'Сотрудник') {
  72.    //     message = 'Привет';
  73.    // } else if (login == 'Директор') {
  74.    //     message = 'Здравствуйте';
  75.    // } else if (login == '') {
  76.    //     message = 'Нет логина';
  77.    // } else {
  78.    //     message = '';
  79.    // }
  80.  
  81.  
  82.    let login = prompt ('Вы кто?', 'Сотрудник');
  83.    let message = (login == 'Сотрудник') ? 'Привет' :
  84.        (login == 'Директор') ? 'Здравствуйте' :
  85.            (login == '') ? 'Нет логина' :
  86.                '';
  87.    alert (message);
  88.  
  89.  
  90.    //
  91.    //     Функции
  92.    //     задача
  93.    //     Следующая функция возвращает true, если параметр age больше 18.
  94.    //     В ином случае она запрашивает подтверждение через confirm и возвращает его результат:
  95.    //         function checkAge(age) {
  96.    //             if (age > 18) {
  97.     //                 return true;
  98.     //             } else {
  99.     //                 // ...
  100.     //                 return confirm('Родители разрешили?');
  101.     //             }
  102.     //         }
  103.     //     Будет ли эта функция работать как-то иначе, если убрать else?
  104.     // Ответ: если убрать else , то все будет работать также
  105.  
  106.     function checkAge(age) {
  107.         if (age > 18) {
  108.             return true;
  109.         } else {
  110.             // ...
  111.             return confirm ('Родители разрешили?');
  112.         }
  113.     }
  114.  
  115.  
  116.     console.log ("возраст больше 18?" + " " + checkAge (12));
  117.  
  118.  
  119.     //     задача
  120.     //     function checkAge(age) {
  121.     //         if (age > 18) {
  122.     //             return true;
  123.     //         }
  124.     //         // ...
  125.     //         return confirm('Родители разрешили?');
  126.     //     }
  127.     // Есть ли хоть одно отличие в поведении этого варианта?
  128.     // Ответ: нет отличий
  129.  
  130.     //         задача
  131.     //     Следующая функция возвращает true, если параметр age больше 18.
  132.     // В ином случае она задаёт вопрос confirm и возвращает его результат.
  133.     //     function checkAge(age) {
  134.     //     if (age > 18) {
  135.     //         return true;
  136.     //     } else {
  137.     //         return confirm('Родители разрешили?');
  138.     //     }
  139.     // }
  140.     // Перепишите функцию, чтобы она делала то же самое, но без if, в одну строку.
  141.  
  142.     function checkAge2(age) {
  143.         return result = (age > 18) ? true : confirm ('Родители разрешили?');
  144.     }
  145.  
  146.     let age2 = prompt ('Сколько вам лет?', 19);
  147.     console.log ("возраст больше 18?" + " " + checkAge2 (age2));
  148.  
  149.  
  150.     //     задача
  151.     // Сделайте два варианта функции checkAge:
  152.     //     1.   Используя оператор ?
  153.     //     2.   Используя оператор ||
  154.  
  155.  
  156.     // Решение 1.    Используя оператор ?
  157.     function checkAge3(age) {
  158.         return result = (age > 18) ? true : confirm ('Родители разрешили?');
  159.     }
  160.  
  161.     let age3 = prompt ('Сколько вам лет?', 19);
  162.     console.log ("возраст больше 18?" + " " + checkAge3 (age3));
  163.  
  164.  
  165.     // Решение 2.    Используя оператор ||
  166.     function checkAge4(age) {
  167.         return result = (age > 18 || confirm ('Родители разрешили?')) ? true : false;
  168.     }
  169.  
  170.     let age4 = prompt ('Сколько вам лет?', 19);
  171.     console.log ("возраст больше 18?" + " " + checkAge4 (age4));
  172.  
  173.  
  174.     // задача
  175.     // Напишите функцию min(a,b), которая возвращает меньшее из чисел a и b.
  176.     //     Пример вызовов:
  177.     //     min(2, 5) == 2
  178.     // min(3, -1) == -1
  179.     // min(1, 1) == 1
  180.  
  181.     function min(a, b) {
  182.         return Math.min (a, b);
  183.     }
  184.  
  185.     let a1 = prompt ("Введите пожалуйста число a1", 1);
  186.     let b1 = prompt ("Введите пожалуйста число b1", 3);
  187.     console.log ("Минимальное число = " + min (a1, b1));
  188.  
  189.     //
  190.     // задача
  191.     // Напишите функцию pow(x,n), которая возвращает x в степени n. Иначе говоря, умножает x на себя n раз и возвращает результат.
  192.     // pow(3, 2) = 3 * 3 = 9
  193.     // pow(3, 3) = 3 * 3 * 3 = 27
  194.     // pow(1, 100) = 1 * 1 * ...* 1 = 1
  195.     // Создайте страницу, которая запрашивает x и n, а затем выводит результат pow(x,n).
  196.     //     P.S. В этой задаче функция обязана поддерживать только натуральные значения n, т.е. целые от 1 и выше.
  197.  
  198.     function pow(x, n) {
  199.         if (n == 0) { // для нулевой степени
  200.             return 1;
  201.         } else if (n == 1) { // для первой степени
  202.             return x;
  203.         } else if (n > 1) { // для положительной степени
  204.             let base = x;
  205.             for (let i = 1; i < n; i ++) {
  206.                x = base * x;
  207.            }
  208.            return x
  209.        } else { // для отрицательной степени
  210.            let base = x;
  211.            for (let i = - 1 * n; i > 0; i --) {
  212.                 x = x / base;
  213.             }
  214.             return x
  215.         }
  216.     }
  217.  
  218.     let x = prompt ("Введите пожалуйста число x", 3);
  219.     let n = prompt ("Введите пожалуйста целое число n", 3);
  220.     console.log (`${x} в степени ${n} = ` + pow (x, n));
  221.  
  222.  
  223.     // Стрелочные функции
  224.     // задача
  225.     // Замените код Function ask стрелочной функцией:
  226.     //     function ask(question, yes, no) {
  227.     //         if (confirm(question)) yes()
  228.     //         else no();
  229.     //     }
  230.     //
  231.     // ask(
  232.     //     "Вы согласны?",
  233.     //     function() { alert("Вы согласились."); },
  234.     //     function() { alert("Вы отменили выполнение."); }
  235.     // );
  236.     //
  237.  
  238.     function ask(question, yes, no) {
  239.         if (confirm (question)) yes ()
  240.         else no ();
  241.     }
  242.  
  243.     ask (
  244.         "Вы согласны?",
  245.         () => {
  246.             alert ("Вы согласились.");
  247.         },  // в стрелочной нотации вместо слова function пишем (*args,**kwargs)=> {действие которое выполняет функция}
  248.         () => {
  249.             alert ("Вы отменили выполнение.");
  250.         }
  251.     );
  252.     console.log (ask ("Вы согласны?",
  253.         function () {
  254.             alert ("Вы согласились.");
  255.         },
  256.         function () {
  257.             alert ("Вы отменили выполнение.");
  258.         }
  259.     ));
  260.  
  261.  
  262.     // Массивы
  263.     // задача
  264.     // Что выведет следующий код?
  265.     let fruits = ["Яблоки", "Груша", "Апельсин"];
  266.     // Ответ: код выводит Array(3) ["Яблоки", "Груша", "Апельсин"]
  267.     console.log (fruits);
  268.  
  269.     // добавляем новое значение в "копию"
  270.     let shoppingCart = fruits;
  271.     shoppingCart.push ("Банан");
  272.     console.log (fruits);
  273.     // что в fruits?
  274.     // Ответ: в fruits будет находиться массив ["Яблоки", "Груша", "Апельсин","Банан"]
  275.     alert (fruits.length); // 4
  276.  
  277.  
  278.     // задача
  279.     // Давайте произведём 5 операций с массивом.
  280.     // 1.   Создайте массив styles с элементами «Джаз» и «Блюз».
  281.     // 2.   Добавьте «Рок-н-ролл» в конец.
  282.     // 3.   Замените значение в середине на «Классика». Ваш код для поиска значения в середине должен работать для массивов с любой длиной.
  283.     // 4.   Удалите первый элемент массива и покажите его.
  284.     // 5.   Вставьте «Рэп» и «Регги» в начало массива.
  285.     //     Массив по ходу выполнения операций:
  286.     //     Джаз, Блюз
  287.     // Джаз, Блюз, Рок-н-ролл
  288.     // Джаз, Классика, Рок-н-ролл
  289.     // Классика, Рок-н-ролл
  290.     // Рэп, Регги, Классика, Рок-н-ролл
  291.  
  292.     let styles = ["Джаз", "Блюз"];  // Создайте массив styles с элементами «Джаз» и «Блюз».
  293.     styles.push ("Рок-н-ролл"); //Добавьте «Рок-н-ролл» в конец.
  294.     let len = (styles.length - styles.length % 2) / 2;// делим на цело , чтобы найти индекс среднего элемента массива
  295.     styles[len] = "Классика"; // Замените значение в середине на «Классика».
  296.     styles.splice (0, 1); // Удалите первый элемент массива и покажите его.
  297.     console.log (styles);
  298.     styles.unshift ("Рэп", "Регги");//Вставьте «Рэп» и «Регги» в начало массива.
  299.     console.log (styles);
  300.  
  301.  
  302.     // задача
  303.     // Каков результат? Почему?
  304.     let arr = ["a", "b"];
  305.     arr.push (function () {
  306.         alert (this);
  307.     });
  308.     console.log (arr);  // здесь просто выводится массив   ["a", "b", f]
  309.     console.log (arr[2] ()); // здесь выводится результат работы анонимной функции  function() , которая выводит в поп-ап окно весь массив arr
  310.  
  311.  
  312.     // Объекты
  313.     // задача
  314.     // Напишите код, выполнив задание из каждого пункта отдельной строкой:
  315.     //     1.   Создайте пустой объект user.
  316.     // 2.   Добавьте свойство name со значением John.
  317.     // 3.   Добавьте свойство surname со значением Smith.
  318.     // 4.   Измените значение свойства name на Pete.
  319.     // 5.   Удалите свойство name из объекта.
  320.     let user = {}; // Создайте пустой объект user.
  321.     user.name = 'John'; //Добавьте свойство name со значением John.
  322.     user.surname = 'Smith'; //Добавьте свойство surname со значением Smith.
  323.     user.name = 'Pete'; // Измените значение свойства name на Pete.
  324.     delete user.name; // Удалите свойство name из объекта.
  325.  
  326.     //     задача
  327.     // Напишите функцию isEmpty(obj), которая возвращает true, если у объекта нет свойств, иначе false.
  328.     //     Должно работать так:
  329.     //     let schedule = {};
  330.     // alert( isEmpty(schedule) ); // true
  331.     // schedule["8:30"] = "get up";
  332.     // alert( isEmpty(schedule) ); // false
  333.  
  334.     function isEmpty(obj) {
  335.         let i = 0;  // счетчик свойств объекта
  336.         for (key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
  337.             i ++ // на каждой итерации цикла увеличиваем счетчик свойств объекта
  338.         }
  339.  
  340.         return (i == 0) ? true : false; // если счетчик свойств = 0 то true
  341.     }
  342.  
  343.  
  344.     // задача
  345.     // Можно ли изменить объект, объявленный с помощью const? Как вы думаете?
  346.     const user = {
  347.         name: "John"
  348.     };
  349.     // Ответ: изменить свойства объекта, объявленного с помощью const можно
  350.     user.name = 'blabla';
  351.     console.log (user.name);
  352.     user.surname = 'ahaha';
  353.     console.log (user.surname);
  354.  
  355.  
  356.     // это будет работать?
  357.     // user.name = "Pete";
  358.     // Ответ: работать будет. ответ выше
  359.  
  360.  
  361.     // задача
  362.     // У нас есть объект, в котором хранятся зарплаты нашей команды:
  363.     //     let salaries = {
  364.     //         John: 100,
  365.     //         Ann: 160,
  366.     //         Pete: 130
  367.     //     }
  368.     // Напишите код для суммирования всех зарплат и сохраните результат в переменной sum. Должно получиться 390.
  369.     // Если объект salaries пуст, то результат должен быть 0.
  370.  
  371.     let salaries = {
  372.         John: 100,
  373.         Ann: 160,
  374.         Pete: 130
  375.     };
  376.  
  377.     let salaries2 = {};
  378.  
  379.     function sumx(obj) {
  380.         let res = 0;  // сюда суммируем значения свойств объекта
  381.         for (let key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
  382.             res += obj[key]; // на каждой итерации цикла увеличиваем счетчик свойств объекта
  383.         }
  384.  
  385.         return res; // если счетчик свойств = 0 то true
  386.     }
  387.  
  388.     console.log (sumx (salaries));  // 390 так как объект salaries не пуст
  389.     console.log (sumx (salaries2)); // 0 так как объект salaries2 пуст
  390.  
  391.  
  392.     // задача
  393.     // Создайте функцию multiplyNumeric(obj), которая умножает все числовые свойства объекта obj на 2.
  394.     // Например:
  395.     // // до вызова функции
  396.     //     let menu = {
  397.     //         width: 200,
  398.     //         height: 300,
  399.     //         title: "My menu"
  400.     //     };
  401.     // multiplyNumeric(menu);
  402.     // // после вызова функции
  403.     // menu = {
  404.     //     width: 400,
  405.     //     height: 600,
  406.     //     title: "My menu"
  407.     // };
  408.     // Обратите внимание, что multiplyNumeric не нужно ничего возвращать. Следует напрямую изменять объект.
  409.     //     P.S. Используйте typeof для проверки, что значение свойства числовое.
  410.  
  411.     let menu = {
  412.         width: 200,
  413.         height: 300,
  414.         title: "My menu"
  415.     };
  416.  
  417.  
  418.     function multiplyNumeric(obj) {
  419.         for (let key in obj) { // пробегаемся по всем свойствам объекта в цикле for in
  420.             (typeof (obj[key]) == "number") ? obj[key] = obj[key] * 2 : obj[key]; // на каждой итерации цикла проверяем является ли значение свойства объекта числом и если да, то умножаем на 2
  421.         }
  422.  
  423.         return obj;
  424.     }
  425.  
  426.     console.log (multiplyNumeric (menu));
  427.  
  428.  
  429. </script>
  430.  
  431.  
  432. </body>
  433. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement