#Фича
Как Вы думаете, что вернет функция?
Ответ 👇
В данном случае ответ будет 2000
Символ нижнего подчеркивания "_" может использоваться в числах для улучшения их читаемости.
Например, в числе 1_000 нижнее подчеркивание помогает разделить разряды и сделать число более читаемым. Это особенно полезно когда работа идет с большими числами
При выполнении кода, нижние подчеркивания игнорируются и число рассматривается как обычное целое число.
@CCODE | JS⚡️
Как Вы думаете, что вернет функция?
Ответ 👇
Символ нижнего подчеркивания "_" может использоваться в числах для улучшения их читаемости.
Например, в числе 1_000 нижнее подчеркивание помогает разделить разряды и сделать число более читаемым. Это особенно полезно когда работа идет с большими числами
При выполнении кода, нижние подчеркивания игнорируются и число рассматривается как обычное целое число.
@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25❤6✍4
This media is not supported in your browser
VIEW IN TELEGRAM
#Практика
Делаем простой таймер на javascript
JS:
@CCODE | JS⚡️
Делаем простой таймер на javascript
JS:
const start = document.querySelector('.start');
const stop = document.querySelector('.stop');
const reset = document.querySelector('.reset');
start.addEventListener('click', startTimer);
stop.addEventListener('click', stopTimer);
reset.addEventListener('click', resetTimer);
let timer;
let time = 0;
let running = false;
function startTimer() {
if (!running) {
running = true;
timer = setInterval(updateTimer, 1000);
}
}
function stopTimer() {
running = false;
clearInterval(timer);
}
function resetTimer() {
stopTimer();
time = 0;
updateDisplay();
}
function updateTimer() {
time++;
updateDisplay();
}
function updateDisplay() {
let sec = time % 60;
let min = Math.floor((time / 60) % 60);
let hours = Math.floor(time / 3600);
const intervalEl = document.querySelectorAll('.interval');
intervalEl[0].textContent = hours < 10 ? '0' + hours : hours;
intervalEl[1].textContent = min < 10 ? '0' + min : min;
intervalEl[2].textContent = sec < 10 ? '0' + sec : sec;
}@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация высоты с помощью grid-template-rows, для плавного показа контента внутри аккордиона
HTML:
CSS:
JS:
@CCODE | CSS⚡️
HTML:
<div class="accardion-panel">
<div class="accardion-header">
<div class="accardion-title">Lorem ru ipsum?</div>
</div>
<div class="accardion-bottom">
<div class="accardion-content">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repudiandae neque aspernatur impedit voluptates et cumque eligendi aperiam sit, culpa, laudantium id ea nam amet molestias nihil ipsum cupiditate est fugit?
</div>
</div>
</div>
CSS:
.accardion-bottom {
display: grid;
grid-template-rows: 0fr;
transition: 0.3s ease;
}
.accardion-content {
overflow: hidden;
font-size: 14px;
line-height: 150%;
}
.accardion-bottom-active {
grid-template-rows: 1fr;
}JS:
document.querySelectorAll('.accardion-header').forEach((item) => {
item.addEventListener('click', (e) => {
let item = e.target.closest('.accardion-panel');
let content = item.querySelector('.accardion-bottom');
content.classList.toggle('accardion-bottom-active');
});
});@CCODE | CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
#Практика
Создаем свое мини приложение по подсчету: слов, букв и спец символов
JS:
@CCODE | CSS⚡️
Создаем свое мини приложение по подсчету: слов, букв и спец символов
JS:
const words = document.querySelector('.words-count');
const symbols = document.querySelector('.symbols-count');
const chars = document.querySelector('.count-chars');
const textArea = document.querySelector('.text');
textArea.addEventListener('input', (e) => {
words.textContent = textArea.value.trim().split(/\s+/).length;
if (textArea.value.trim() === '') words.textContent = '0';
chars.textContent = textArea.value
.split(/[ !"№;%:@#?*()_+\/,.]/)
.join('').length;
symbols.textContent = textArea.value.split(/[!@#$%^&*()_+.,-/]/).length - 1;
});@CCODE | CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
#Задача
Напишите функцию, которая принимает предложение и возвращает самое длинное слово в этом предложение.
Если в предложение несколько слов с одинаковой длиной, верните первое из них
Решение 👆
Объяснение 👇
1. Принимаем аргументом предложение (sentence)
2. Разделяем предложение на массив слов с помощью метода split(' ')
3. Заводим 2 переменные, которые будут хранить самое длинное слово и его длину
4. В цикле for проходим по каждому слову и с помощью регулярного выражения удаляем все символы кроме букв , а так же определяем длину слова в переменную wordLength
5. Делаем проверку. Если текущее слово длинее, чем сохраненное слово, обновляем значение переменных (longWord и MaxLength)
6. Возвращаем переменную longWord
@CCODE | JS⚡️
Напишите функцию, которая принимает предложение и возвращает самое длинное слово в этом предложение.
Если в предложение несколько слов с одинаковой длиной, верните первое из них
input: 'I love ? javascript!'
output: javascript
Решение 👆
Объяснение 👇
2. Разделяем предложение на массив слов с помощью метода split(' ')
3. Заводим 2 переменные, которые будут хранить самое длинное слово и его длину
4. В цикле for проходим по каждому слову и с помощью регулярного выражения удаляем все символы кроме букв , а так же определяем длину слова в переменную wordLength
5. Делаем проверку. Если текущее слово длинее, чем сохраненное слово, обновляем значение переменных (longWord и MaxLength)
6. Возвращаем переменную longWord
@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4
This media is not supported in your browser
VIEW IN TELEGRAM
#Практика
Пишем скрипт для отправки данных из формы в телеграмм
JS:
@CCODE | JS⚡️
Пишем скрипт для отправки данных из формы в телеграмм
JS:
const form = document.querySelector('#myForm');
form.addEventListener('submit', formSend);
async function formSend(event) {
event.preventDefault();
const nameForm = this.querySelector('#name').value;
const phoneForm = this.querySelector('#phone').value;
const TOKEN = '';
const chatID = '';
const URI_API = `https://api.telegram.org/bot${TOKEN}/sendMessage`;
let msg = `
Новая завка!
Имя клиента: ${nameForm};
Телефон клиента: ${phoneForm};
`;
const response = await fetch(URI_API, {
method: 'POST',
headers: {
'Content-type': 'application/json',
},
body: JSON.stringify({
chat_id: chatID,
text: msg,
}),
});
const result = await response.json();
if (result.ok) {
alert('Форма отправлена');
} else {
alert('Ошибка');
}
}@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6🔥3⚡2
This media is not supported in your browser
VIEW IN TELEGRAM
#плюшки 😁
Если вы хотите немного украсить ваш javascript код, а темы которые есть надоели, сделайте следующее:
Параметры -> editor.tokenColorCastomizations
"comments": "#ваш цвет" - цвет комментариев
"strings": "#ваш цвет" - цвет строк
"numbers": "#ваш цвет" - цвет чисел
"functions": "#ваш цвет" - цвет функций
"variables": "#ваш цвет" - цвет переменных
@CCODE |⚡️
Если вы хотите немного украсить ваш javascript код, а темы которые есть надоели, сделайте следующее:
Параметры -> editor.tokenColorCastomizations
"comments": "#ваш цвет" - цвет комментариев
"strings": "#ваш цвет" - цвет строк
"numbers": "#ваш цвет" - цвет чисел
"functions": "#ваш цвет" - цвет функций
"variables": "#ваш цвет" - цвет переменных
@CCODE |
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9😁5👏1
#Задача
Проверьте, является ли строка палиндромом, игнорируя регистр символов, знаки пунктуации и пробелы.
Ответ 👆
Объяснение👇
1.Сначала мы преобразуем входную строку в нижний регистр с помощью метода toLowerCase(), затем удаляем все символы, кроме букв и цифр, с помощью регулярного выражения и метода replace(/[^a-z0-9]/g, ''). Это создает "очищенную" версию исходной строки, готовую для проверки на палиндром.
2. Затем мы разбиваем "очищенную" строку на массив отдельных символов с помощью метода split(''), переворачиваем этот массив с помощью reverse(), а затем объединяем его обратно в строку с помощью join(''). Это создает перевернутую версию "очищенной" строки.
3. В конце мы просто сравниваем cleaningString с reversedString и выводим результат
Проверьте, является ли строка палиндромом, игнорируя регистр символов, знаки пунктуации и пробелы.
Ответ 👆
Объяснение👇
2. Затем мы разбиваем "очищенную" строку на массив отдельных символов с помощью метода split(''), переворачиваем этот массив с помощью reverse(), а затем объединяем его обратно в строку с помощью join(''). Это создает перевернутую версию "очищенной" строки.
3. В конце мы просто сравниваем cleaningString с reversedString и выводим результат
👍11🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Опциональная цепочка (Optional chaining) в JavaScript - это способ безопасного доступа к свойствам объекта, когда некоторые из них могут быть null или undefined.
Опциональная цепочка позволяет избежать ошибок типа "Cannot read property 'x' of undefined" или "Cannot read property 'x' of null".
В нашем примере, используя опциональную цепочку ?. , мы добавляем обработчик события click к button, что позволяет нам избежать ошибки если элемент с классом button не был найден
@CCODE | JS⚡️
Опциональная цепочка позволяет избежать ошибок типа "Cannot read property 'x' of undefined" или "Cannot read property 'x' of null".
В нашем примере, используя опциональную цепочку ?. , мы добавляем обработчик события click к button, что позволяет нам избежать ошибки если элемент с классом button не был найден
@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
Правило @supports в CSS - это условное групповое правило, которое позволяет применять блок стилей только в том случае, если определенное условие истинно.
Оно проверяет, поддерживает ли браузер определенное свойство CSS , прежде чем применять стили внутри блока.
В нашем случае стили внутри блока @supports будут применены только в том случае, если браузер поддерживает свойство display: grid . Если условие не выполняется, стили внутри блока будут проигнорированы.
@CCODE | CSS⚡️
Оно проверяет, поддерживает ли браузер определенное свойство CSS , прежде чем применять стили внутри блока.
В нашем случае стили внутри блока @supports будут применены только в том случае, если браузер поддерживает свойство display: grid . Если условие не выполняется, стили внутри блока будут проигнорированы.
@CCODE | CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
✍14❤2👍2🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍5
#Задача
Напишите функцию isUnique(str), которая принимает строку и возвращает true, если все символы в строке являются уникальными (не повторяются), и false в противном случае. При проверке на уникальность не учитывайте пробелы.
Ответ👆
Объяснение👇
1. Создается объект charMap для хранения уникальных символов.
2. Проходим по каждому символу в строке str с помощью цикла for...of
3. Для каждого символа проверяем, есть ли он уже в объекте charMap. Если есть, то символ повторяется, и функция возвращает false.
4. Если символ не найден в объекте charMap, добавляем его в объект с использованием символа в качестве ключа и true в качестве значения.
5. После прохода по всем символам строки, если все символы уникальны, объект charMap будет содержать только уникальные символы, и функция возвращает true.
@CCODE | JS⚡️
Напишите функцию isUnique(str), которая принимает строку и возвращает true, если все символы в строке являются уникальными (не повторяются), и false в противном случае. При проверке на уникальность не учитывайте пробелы.
Ответ👆
Объяснение👇
2. Проходим по каждому символу в строке str с помощью цикла for...of
3. Для каждого символа проверяем, есть ли он уже в объекте charMap. Если есть, то символ повторяется, и функция возвращает false.
4. Если символ не найден в объекте charMap, добавляем его в объект с использованием символа в качестве ключа и true в качестве значения.
5. После прохода по всем символам строки, если все символы уникальны, объект charMap будет содержать только уникальные символы, и функция возвращает true.
@CCODE | JS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
This media is not supported in your browser
VIEW IN TELEGRAM
Свойство counter-increment в CSS
Используется для увеличения значения счетчика при отображении элементов списка или других элементов счетчика
@CCODE | CSS⚡️
Используется для увеличения значения счетчика при отображении элементов списка или других элементов счетчика
.todo-list {
counter-reset: counter;
}
.todo-item:before {
counter-increment: counter;
content: counter(counter);
}@CCODE | CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👏1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Адаптивная сетка в несколько строчек кода с помощью grid
CSS:
HTML:
@CCODE | CSS⚡️
CSS:
.wrapper {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 20px;
}HTML:
<div class="wrapper">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
<div class="box">4</div>
</div>
@CCODE | CSS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Псевдокласс ::selection в CSS
Позволяет стилизовать выделенный текст на странице
Позволяет стилизовать выделенный текст на странице
.title {
font-size: 64px;
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05em;
}
.title::selection {
background-color: rgb(0, 250, 229);
color: rgb(141, 2, 255);
}👍19