#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
Новый год наступает на пятки и праздничное настроение уже манит! А меж тем декабрь не отпускает своей суетой и задачами...
А ты все успел в этом году?
Помогаем разложить по полкам дела и расставить правильные приоритеты:
ТАЙМ-МЕНЕДЖМЕНТ И КАК ВСЕ УСПЕТЬ
- - читать статью.
А ты все успел в этом году?
Помогаем разложить по полкам дела и расставить правильные приоритеты:
ТАЙМ-МЕНЕДЖМЕНТ И КАК ВСЕ УСПЕТЬ
- - читать статью.
Привет, друг!
Мы готовим для тебя новый стрим на нашем YouTube канале:
"Как стартовать в IT".
🕖 28.12.2022 в 19:00 по МСК будем разбирать самые наболевшие темы:
✔️ нужно ли идти в IT в 2023,
✔️ рынок труда в IT — есть ли спрос,
✔️ что должен знать junior (чек-лист по базовым знаниям),
✔️ сколько учиться чтобы выйти на работу,
✔️ как не перегореть во время обучения,
✔️ в 30 не поздно? а в 14 не рано идти учиться,
✔️ страхи перед обучением: найду ли работу, будет ли сложно, как совмещать работу и учебу,
✔️ ошибки в обучении (личный опыт спикеров),
✔️ тайм-менеджмент студента, и т.д.
Наши спикеры помогут с тайм-менеджментом, расскажут про ошибки при обучении и как их избежать.
Приходи, будем беседовать беседы и раздавать советы 😉 -- "Как стартовать в IT".
*задать свой вопрос для стрима можно тут
Мы готовим для тебя новый стрим на нашем YouTube канале:
"Как стартовать в IT".
🕖 28.12.2022 в 19:00 по МСК будем разбирать самые наболевшие темы:
✔️ нужно ли идти в IT в 2023,
✔️ рынок труда в IT — есть ли спрос,
✔️ что должен знать junior (чек-лист по базовым знаниям),
✔️ сколько учиться чтобы выйти на работу,
✔️ как не перегореть во время обучения,
✔️ в 30 не поздно? а в 14 не рано идти учиться,
✔️ страхи перед обучением: найду ли работу, будет ли сложно, как совмещать работу и учебу,
✔️ ошибки в обучении (личный опыт спикеров),
✔️ тайм-менеджмент студента, и т.д.
Наши спикеры помогут с тайм-менеджментом, расскажут про ошибки при обучении и как их избежать.
Приходи, будем беседовать беседы и раздавать советы 😉 -- "Как стартовать в IT".
*задать свой вопрос для стрима можно тут