123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- // 1. Напишите функцию a, которая будет служить коротким именем для alert, то есть выводит пользовательское сообщение в стандартном модальном окне.
- // Напишите функцию d, которая будет служить коротким именем для debugger, то есть запускает процесс отладки.
- // : 5
- // : 2
- function a(greeting) {
- alert('Hello');
- }
- function d() {
- debugger;
- }
- a('Hello');
- d();
- a('World');
- // 2. Напишите функцию max, которая сравнивает два числа и возвращает большее:
- // : 10
- // : 3
- function max (x,y) {
- if(x < y){
- alert(y);
- }else if (y < x){
- alert(x);
- }
- }
- consol.log(max(0,-1));
- // 3. Напишите функцию-аналог Math.min(). Функция принимает любое количество чисел и возвращает меньшее из них:
- // : 20
- // :
- function min() {
- var min = arguments[0];
- for(var i = 1; i < arguments.length; i++) {
- if(arguments[i] < min) {
- min = arguments[i];
- }
- }
- return min;
- }
- // 4. Изучите перебирающие методы массивов: forEach, filter, map. Создайте массив объектов users (~10 объектов), каждый объект имеет поля firstname, lastname, age с разными значениями,
- // у некоторых есть поле middlename. Используя встроенные функции массивов:
- //Отфильтруйте пользователей младше 18 лет
- //Добавьте каждому объекту поле fullName, которое является конкатенацией firstname, middlename и lastname, если есть все три, и только firstname и lastname, если middlename нет
- // Сформируйте новый массив, который содержит только полное имя пользователей
- // : 30
- // : 50
- var users = [
- {
- firstname : 'Nikita',
- middlename : 'Nik',
- lastname : 'Malko',
- age : 23,
- },
- {
- firstname : 'Maksim',
- middlename : 'Bob',
- lastname : 'Burlaka',
- age : 20,
- },
- {
- firstname : 'Maks',
- middlename : 'Sema',
- lastname : 'Semin',
- age : 23,
- },
- {
- firstname : 'Ivan',
- lastname : 'Seleznev',
- age : 5,
- },
- {
- firstname : 'Alina',
- lastname : 'Osadchay',
- age : 20,
- },
- {
- firstname : 'Alisa',
- lastname : 'Selezneva',
- age : 12,
- },
- {
- firstname : 'Alexey',
- lastname : 'Litvin',
- age : 21,
- },
- {
- firstname : 'Stefan',
- lastname : 'Fursov',
- age : 8,
- },
- {
- firstname : 'Kira',
- lastname : 'Fursova',
- age : 4,
- },
- {
- firstname : 'Alina',
- lastname : 'Burluckay',
- age : 20,
- },
- {
- firstname : 'Marina',
- lastname : 'Selezneva',
- age : 38,
- },
- ];
- var a = users.filter(function(users) {
- return filterAge.age > 18;
- });
- var b = users.forEach(function(users){
- users.fullName = users.firstname + ' ' + users.lastname + ' ' + users.middlename;
- if (users.middlename === undefined){
- users.fullName = users.firstname + ' ' +users.lastname;
- }
- });
- // 5. Напишите функцию аналог метода массива shift. Функция удаляет из переданного в параметре массива первый элемент и возвращает новый массив.
- // : 30
- // : 15
- var delFirst = function (arr){
- arr.shift();
- }
- arr = ['aaspflas','as','asdlas','asldasl']
- delFirst(arr);
- // 6. Напишите функцию аналог метода массива push. Функция добавляет в конец переданного в параметре массив произвольное количество элементов.
- // : 20
- // : 25
- var pussy = function (arr){
- arr.push(Math.ceil(Math.random() * 10));
- return arr;
- }
- pussy([10,3231,412412]);
- // 7. Напишите функцию аналог метода jQuery $.extend. Первый параметр функции - целевой объект, поля которого будут изменены или расширены. Остальные параметры -
- // объекты-источники, полями которых будет расширяться целевой объект.
- // var source = {firstname: 'Tom', age: 10}
- // var s = extend(source, {firstname: 'John'}, {lastname: 'Doe'});
- // console.log(source); // {firstname: 'John', age: 10, lastname: 'Doe'}
- // console.log(s); // {firstname: 'John', age: 10, lastname: 'Doe'}
- // : 20
- // : 15
- var source = {firstname: 'Tom', age: 10}
- function extend(firstObj, obj1, obj2){
- var a = $.extend(obj1,obj2);
- return $.extend(firstObj,a);
- }
- var s = extend(source, {firstname: 'John'}, {lastname: 'Doe'});
- console.log(source);
- console.log(s);
- // 8.Напишите функцию setComment с параметрами: date, message, author. Дата и текст сообщения - обязательные параметры, если какой-то из них или оба отсутствуют,
- // то выполнение функции должно обрываться, а пользователю выдаваться предупреждение (alert) о том, что данные переданы некорректно. Параметр author - опциональный,
- // но должна происходить проверка: если параметр не передан, то вместо него подставляется значение ‘Anonymous’. Функция распечатывает на странице текст в формате:
- // <имя_автора>, <дата>
- // <текст_сообщения>
- // : 15
- // : 10
- function setComment(date, message, author){
- if (date === undefined) return;
- if (message === undefined) return;
- if (author === undefined) {
- author = 'Anonymous';
- };
- return alert(author + ' ' + date + '\n' + message);
- }
- setComment('2016-11-02', 'Everything is ok', 'John');
- setComment('2016-11-02', 'You could do it better!');
- // ЗАМЫКАНИЕ
- // 9. Используя замыкание, напишите функцию createTimer, которая использует метод performance.now() для получения текущей временной метки и служит для замера времени выполнения
- // другого кода:
- //
- //
- function createTimer () {
- var firstTime = performance.now();
- return function secondCreateTime () {
- return performance.now() - firstTime;
- }
- }
- var timer = createTimer();
- alert('!') // код, время выполнения которого нужно измерить
- alert( timer() ); // время в мкс от начала выполнения createTimer() до момента вызова timer()
- // 10. Используя замыкания, создайте функцию createAdder(), которая принимает на вход любой примитивный параметр и возвращает функцию, которая добавляет к первому параметру второй.
- // Функция работает по следующему принципу:
- // : 20
- // :
- function createAdder(args) {
- return function secondCreateAdder(args2){
- return args + args2;
- }
- }
- var hello = createAdder('Hello, ');
- alert( hello('John') ); // Hello, John
- alert( hello('Harry') ); // Hello, Harry
- var plus = createAdder(5);
- alert( plus(1) ); // 6
- alert( plus(5) ); // 10
|