Продолжаем цикл статей о том, как работают веб-приложения.
Сегодня Часть 2: Что такое API
- - читать статью.
Сегодня Часть 2: Что такое API
- - читать статью.
Telegraph
Как работают веб-приложения. Часть 2: Что такое API
Первая статья цикла: Зачем нужен бэкенд и фронтенд В широком смысле API – это вид интерфейса и расшифровывается как "программный интерфейс приложения" (Application Programming Interface). Что мы подразумеваем под словом интерфейс? Пользовательский интерфейс…
WANTED
Наша школа DevHouse запустилась в 2022 году, и за этот год мы обучили 3 потока крутецких специалистов.
Мы гордимся нашими учениками и хотим поделиться их работами со всеми.
Студенты и выпускники DevHouse, присылайте свои проекты нам на почту [email protected] с пометкой от кого и какой проект. Ждём ваши работы с 6.12.22 по 11.12.22.
Самые топовые проекты мы опубликуем на сайте школы!
#проектыDevhouse
Наша школа DevHouse запустилась в 2022 году, и за этот год мы обучили 3 потока крутецких специалистов.
Мы гордимся нашими учениками и хотим поделиться их работами со всеми.
Студенты и выпускники DevHouse, присылайте свои проекты нам на почту [email protected] с пометкой от кого и какой проект. Ждём ваши работы с 6.12.22 по 11.12.22.
Самые топовые проекты мы опубликуем на сайте школы!
#проектыDevhouse
#JS
Верно ли следующее утверждение: Содержимое тэга script нужно заключать в комментарии , чтобы браузеры, которые не поддерживают javascript, работали корректно?
Верно ли следующее утверждение: Содержимое тэга script нужно заключать в комментарии , чтобы браузеры, которые не поддерживают javascript, работали корректно?
Anonymous Poll
8%
Да
86%
Нет
6%
Не знаю
Завершающая статья в цикле про работу веб-приложений уже готова!
Часть 3: Что такое домен - - читать статью.
О чем бы вы хотели узнать из мира ИТ? Пишите в комментариях)
Часть 3: Что такое домен - - читать статью.
О чем бы вы хотели узнать из мира ИТ? Пишите в комментариях)
Telegraph
Как работают веб-приложения. Часть 3: Что такое домен
Первая статья цикла: Зачем нужен бэкенд и фронтенд Вторая статья цикла: Что такое API В широком смысле слова домен означает сферу, область, область пространства. В области информационных технологий наиболее популярное применение слова домен – часть веб-адреса…
Хай! Давай узнаем какой возраст у наших подписчиков
Anonymous Poll
13%
12-18
24%
18-25
34%
25-30
25%
30-45
4%
45 и выше
В Новый Год с новой профессией!
Мы перезапускаем курс "Fontend-разработчик 2023" на новой площадке Getcourse.
👌Обучим и новичков и уже практикующих специалистов.
💪Никакой воды, только разработка, только хардкор!
Стоимость 4990р/мес
Если нужен отдельный модуль - записывайся на интенсив по разработке!
Стоимость от 3800р/мес
Не теряйся, запуск с 9 января!
Пиши нам devhouse_school
Мы перезапускаем курс "Fontend-разработчик 2023" на новой площадке Getcourse.
👌Обучим и новичков и уже практикующих специалистов.
💪Никакой воды, только разработка, только хардкор!
Стоимость 4990р/мес
Если нужен отдельный модуль - записывайся на интенсив по разработке!
Стоимость от 3800р/мес
Не теряйся, запуск с 9 января!
Пиши нам devhouse_school
Привет, сегодня задача "Палиндром"
Палиндром — слово, предложение или последовательность символов, которая абсолютно одинаково читается как в привычном направлении, так и в обратном. К примеру, “Anna” — это палиндром, а “table” и “John” — нет.
Постановка
Дана строка; нужно написать функцию, которая позволяет вернуть значение true, если строка является палиндромом, и false — если нет. При этом нужно учитывать пробелы и знаки препинания.
palindrome('racecar') === true
palindrome('table') === false
Разбираем задание
Основная идея здесь — перевернуть строку в обратном направлении. Если «реверсная» строка полностью идентична исходной, значит, мы получили палиндром и функция должна вернуть значение true. Если же нет — false.
Решение
Вот код, который позволяет решить палиндром.
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}
Первый шаг — преобразование символов входной строки в нижний регистр. Это гарантия того, что программа будет сравнивать именно сами символы, а не регистр или еще что-то.
Второй шаг — реверс строки. Это сделать несложно: необходимо преобразовать ее в массив посредством метода .split() (библиотека String). Потом мы переворачиваем массив, используя .reverse() (библиотека Array). Последний этап — преобразование обратного массива в строку при помощи .join() (библиотека Array).
Теперь все, что нужно, — сравнить «обратную» строку с исходной, вернув результат true или false.
Палиндром — слово, предложение или последовательность символов, которая абсолютно одинаково читается как в привычном направлении, так и в обратном. К примеру, “Anna” — это палиндром, а “table” и “John” — нет.
Постановка
Дана строка; нужно написать функцию, которая позволяет вернуть значение true, если строка является палиндромом, и false — если нет. При этом нужно учитывать пробелы и знаки препинания.
palindrome('racecar') === true
palindrome('table') === false
Разбираем задание
Основная идея здесь — перевернуть строку в обратном направлении. Если «реверсная» строка полностью идентична исходной, значит, мы получили палиндром и функция должна вернуть значение true. Если же нет — false.
Решение
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}
Первый шаг — преобразование символов входной строки в нижний регистр. Это гарантия того, что программа будет сравнивать именно сами символы, а не регистр или еще что-то.
Второй шаг — реверс строки. Это сделать несложно: необходимо преобразовать ее в массив посредством метода .split() (библиотека String). Потом мы переворачиваем массив, используя .reverse() (библиотека Array). Последний этап — преобразование обратного массива в строку при помощи .join() (библиотека Array).
Теперь все, что нужно, — сравнить «обратную» строку с исходной, вернув результат true или false.
Хай! Задача: Список.
Объекты могут быть использованы для построения различных структур данных. Часто встречающаяся структура – список (не путайте с массивом). Список – связанный набор объектов, где первый объект содержит ссылку на второй, второй – на третий, и т.п.
var list = {
value: 1,
rest: {
value: 2,
rest: {
value: 3,
rest: null
}
}
};
Списки удобны тем, что они могут делиться частью своей структуры. Например, можно сделать два списка, {value: 0, rest: list} и {value: -1, rest: list}, где list – это ссылка на ранее объявленную переменную. Это два независимых списка, при этом у них есть общая структура list, которая включает три последних элемента каждого из них. Кроме того, оригинальный список также сохраняет свои свойства как отдельный список из трёх элементов.
Напишите функцию arrayToList, которая строит такую структуру, получая в качестве аргумента [1, 2, 3], а также функцию listToArray, которая создаёт массив из списка. Также напишите вспомогательную функцию prepend, которая получает элемент и создаёт новый список, где этот элемент добавлен спереди к первоначальному списку, и функцию nth, которая в качестве аргументов принимает список и число, а возвращает элемент на заданной позиции в списке, или же undefined в случае отсутствия такого элемента.
Если ваша версия nth не рекурсивна, тогда напишите её рекурсивную версию.
console.log(arrayToList([10, 20]));
// → {value: 10, rest: {value: 20, rest: null}}
console.log(listToArray(arrayToList([10, 20, 30])));
// → [10, 20, 30]
console.log(prepend(10, prepend(20, null)));
// → {value: 10, rest: {value: 20, rest: null}}
console.log(nth(arrayToList([10, 20, 30]), 1));
// → 20
Объекты могут быть использованы для построения различных структур данных. Часто встречающаяся структура – список (не путайте с массивом). Список – связанный набор объектов, где первый объект содержит ссылку на второй, второй – на третий, и т.п.
var list = {
value: 1,
rest: {
value: 2,
rest: {
value: 3,
rest: null
}
}
};
Списки удобны тем, что они могут делиться частью своей структуры. Например, можно сделать два списка, {value: 0, rest: list} и {value: -1, rest: list}, где list – это ссылка на ранее объявленную переменную. Это два независимых списка, при этом у них есть общая структура list, которая включает три последних элемента каждого из них. Кроме того, оригинальный список также сохраняет свои свойства как отдельный список из трёх элементов.
Напишите функцию arrayToList, которая строит такую структуру, получая в качестве аргумента [1, 2, 3], а также функцию listToArray, которая создаёт массив из списка. Также напишите вспомогательную функцию prepend, которая получает элемент и создаёт новый список, где этот элемент добавлен спереди к первоначальному списку, и функцию nth, которая в качестве аргументов принимает список и число, а возвращает элемент на заданной позиции в списке, или же undefined в случае отсутствия такого элемента.
Если ваша версия nth не рекурсивна, тогда напишите её рекурсивную версию.
console.log(arrayToList([10, 20]));
// → {value: 10, rest: {value: 20, rest: null}}
console.log(listToArray(arrayToList([10, 20, 30])));
// → [10, 20, 30]
console.log(prepend(10, prepend(20, null)));
// → {value: 10, rest: {value: 20, rest: null}}
console.log(nth(arrayToList([10, 20, 30]), 1));
// → 20
Задача: "Рекурсия".
Ноль чётный. Единица нечётная. У любого числа N чётность такая же, как у N-2.Напишите рекурсивную функцию isEven согласно этим правилам. Она должна принимать число и возвращать булевское значение. Потестируйте её на 50 и 75. Попробуйте задать ей -1. Почему она ведёт себя таким образом? Можно ли её как-то исправить?
console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → ??
Ноль чётный. Единица нечётная. У любого числа N чётность такая же, как у N-2.Напишите рекурсивную функцию isEven согласно этим правилам. Она должна принимать число и возвращать булевское значение. Потестируйте её на 50 и 75. Попробуйте задать ей -1. Почему она ведёт себя таким образом? Можно ли её как-то исправить?
console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → ??
Хай! Сегодня мы ищем разницу в возрасте)
Используя набор данных из примера, подсчитайте среднюю разницу в возрасте между матерями и их детьми (это возраст матери во время появления ребёнка). Можно использовать функцию average, приведённую в главе.
Обратите внимание – не все матери, упомянутые в наборе, присутствуют в нём. Здесь может пригодиться объект byName, который упрощает процедуру поиска объекта человека по имени.
function average(array) {
function plus(a, b) { return a + b; }
return array.reduce(plus) / array.length;
}
var byName = {};
ancestry.forEach(function(person) {
byName[person.name] = person;
});
// Ваш код
// → 31.2
Используя набор данных из примера, подсчитайте среднюю разницу в возрасте между матерями и их детьми (это возраст матери во время появления ребёнка). Можно использовать функцию average, приведённую в главе.
Обратите внимание – не все матери, упомянутые в наборе, присутствуют в нём. Здесь может пригодиться объект byName, который упрощает процедуру поиска объекта человека по имени.
function average(array) {
function plus(a, b) { return a + b; }
return array.reduce(plus) / array.length;
}
var byName = {};
ancestry.forEach(function(person) {
byName[person.name] = person;
});
// Ваш код
// → 31.2