👁‍🗨 CODORUM — пишу на JavaScript
803 subscribers
146 photos
83 videos
229 links
🟣 Канал создан с целью совместного обучения программированию на языке JavaScript 🟨

✔️ Канал подойдёт для тех кто желает:
научиться программировать на языке JavaScript
расширить свой кругозор в знаниях функций на JS

🎥 Ютуб канал: youtube.com/@codorum
Download Telegram
Заменит ли Искусственный интеллект Человека? 🤖

Полностью - наверняка нет. Не всех.

Во-первых, очевидно, что работодатели не смогут и не будут управлять всем сами. Какой-то минимальный управляющий штат будет необходим. Для управления теми же ИИ-агентами, подстраивания LLM-систем под нужные процессы 🔧

Во-вторых, благодаря/вопреки развитию ИИ происходит не только сокращение, но и рост количества стартапов, а следовательно и рост рабочих мест 📈

В-третьих, ИИ не сможет создавать в точности как человек. Да, человек создает что-то также вдохновляясь чем-то, перенимая чей-то опыт, компилируя уже имеющуюся информацию, как и ИИ на какой-то базе данных. Но есть ключевое отличие в создании (компиляции если хотите) чего-то Искусственным интеллектом и Человеком, про которое подробнее представлено мнение в видео на нашем Ютуб канале 👁

ИИ - конкурент, но пока явно не замена и не полноценная альтернатива Человеку 👨‍💻

Видео на украинском, для украинской части аудитории 🇺🇦

👉 Ссылка на видео
👍2🔥1🤔1
Рубрика разборов возможных вопросов из собеседований по JavaScript 🟨

👉 Что такое Webpack в веб-разработке?

Webpack – это сборщик модулей (module bundler), объединяющий все файлы проекта (js/jsx, css, изображения и т.д.) в один или несколько оптимизированных файлов для браузера

📦 Что он делает:
объединяет файлы (bundle)
оптимизирует код (минимизация, удаление лишнего)
поддерживает современный JS через транспайлеры (например, Babel)
работает с CSS, изображениями и другими ресурсами
позволяет использовать модули (import/export)

Он помогает сайту загружаться быстрее и удобно структурировать код 👁‍🗨
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Условный рендеринг (conditional rendering) – это отображение компонентов или контента в зависимости от определенных условий или состояний 💎

👉 Реализовать это отображение можно с помощью различных способов, таких как:
применение оператора "if/else"
использование тернарного оператора "? :"
использование метода render в классовых компонентах
использование метода return в функциональных компонентах

В видео пример отображения разного текста в зависимости от значения состояния isLoggedIn, которое регулируется кнопкой 👁‍🗨

Код из видео:
import { useState } from 'react';

const Component = () => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);

  const handleLoginClick = () => {
    setIsLoggedIn(prevState => !prevState);
  };

  return (
    <div>
      <h1>{isLoggedIn ? 'Вы успешно авторизованы' : 'Пожалуйста, авторизуйтесь'}</h1>
      <button onClick={handleLoginClick}>
        {isLoggedIn ? 'Выйти' : 'Войти'}
      </button>
    </div>
  );
};

export default Component;
👍3🔥2
Nullish coalescing (оператор нулевого слияния) – оператор в JavaScript, использующийся для задания значения по умолчанию, если переменная равна null или undefined 🟨

👉 Он чем-то напоминает тернарный оператор "?" и логический оператор "||" (ИЛИ), но:
тернарный оператор "?" имеет 3 части (condition ? expr1 : expr2) и больше используется для более детальных задач
логический оператор "||" (ИЛИ) срабатывает на любое falsy-значение (0, '', false, NaN)

Оператор нулевого слияния же просто проверяет равна ли переменная null или undefined, если нет - присваивает заданное значение по-умолчанию 👁‍🗨
🔥4👍2
Рассмотрим тип объекта Object в JavaScript ⚜️

Объекты с типом Object используется для хранения свойств, методов и других вложенных объектов 🗄

На примере кода со скрина есть объект типа Object под названием person 👤

👉 У объекта person есть:
свойства name и age
вложенный объект address
метод speak, который выводит текст в консоль

👉 Что можно делать с объектом person:
обращаться к свойствам (используя название объекта и название свойства "person.name")
вызывать методы (используя название объекта и название метода "person.speak()")
👍4🔥2
🔘 Что происходит при копировании объекта в JavaScript через оператор присваивания (=)?

Вопрос лёгкой сложности ❇️
Anonymous Quiz
10%
Копируются все вложенные свойства объекта
74%
Копируется ссылка на тот же объект
10%
Создается полная независимая копия объекта
5%
Создается новый объект без методов
👍4
Благодаря методу freeze можно заморозить объект в JavaScript 🧊

То есть запретить добавление, удаление и изменение свойств в объекте, а также изменение конфигурационных атрибутов свойств, таких как writable, enumerable, configurable 🚫

👉 Метод можно использовать в целях:
защиты конфигурационного объекта от изменений
поддержания состояний неизменными в Redux или другой системе управления состоянием
создания "неизменного" API
и многих других 👁‍🗨
👍2🔥2
Media is too big
VIEW IN TELEGRAM
Меню из блоков с помощью html-элемента <input> и хука useState в React ⚛️

👉 Блок состоит из связки двух html-элементов:
<input> c уникальным значением value для каждого блока
<label> с наполнением блока

Хук useState сохраняет состояние выбранного блока 🔘

Код:
const Component = () => {
const [selected, setSelect] = useState('');

const ChangeSelect = (event) => {
setSelect(event.target.value);
};

return (
<div class="main">
<input type="radio" id="b1" value="b1"
checked={selected === 'b1'} onChange={ChangeSelect}/>
<label htmlFor="b1" class='block'>1 блок</label>

<input type="radio" id="b2" value="b2"
checked={selected === 'b2'} onChange={ChangeSelect}/>
<label htmlFor="b2" class="block">2 блок</label>

<input type="radio" id="b3" value="b3"
checked={selected === 'b3'} onChange={ChangeSelect}/>
<label htmlFor="b3" class="block">3 блок</label>
</div>
);
};

export default Component;
🔥4👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Скоупинг – комплексное понятие, охватывающее несколько аспектов, направленных на правильное управление переменными и функциями кода. Для избежания конфликтов и обеспечения прозрачного и безопасного взаимодействия элементов программы 🧿

Основные аспекты скоупинга это: Объявление переменных, Объем видимости, Жизненный цикл, Поднятие, Замыкание 🔹

Рассмотрим аспектобъявление переменных

Важно на разных уровнях скоупа использовать разные ключевые слова для объявления переменных (в случае кода на скрине лучше через let). Чтобы переменная из блока if не стала глобальной и не стала причиной возможного конфликта с другими переменными на других Scope уровнях 👁‍🗨
👍2🔥2
Несколько цифр про Cookie 🍪

Cookie – это небольшой фрагмент данных, сохраняющийся на компьютере пользователя посещаемыми пользователем веб-сайтами 🌐

🔸 Максимальный размер одного файла cookie составляет 4096 байтов. Грубо говоря, в один такой файл уместится информация в виде текста размером до 4096 символов латиницы. То есть до 4096 однобайтовых символов

🔸 Максимальное количество cookie-файлов на один домен обычно 50

🔸 А среднее максимальное количество cookie, которые могут храниться браузером около 3000
👍41🔥1👏1
forEach – метод, позволяющий пошагово перебирать все элементы массива. Метод в параметре получает функцию, которая выполнится для каждого элемента массива 👟

С помощью этого метода можно, к примеру, отображать индексы элементов массива, выполнять математические операции, то есть применять функции к каждому элементу поочередно 👁‍🗨
👍3🔥3
Классы в JavaScript могут быть определены в стандартном виде и в расширенном виде. Класс с расширением – это класс, который при объявлении наследует какой-то другой класс с помощью ключевого слова extends 👯‍♀️

Можно наследовать как какой-то встроенный тип класса, так и конкретный объявленный класс  🤝

👉 На скрине продемонстрировано:
наследование стандартного класса Array классом MyArray, вследствие чего класс MyArray может иметь перечесть элементов
наследование кастомного класса Animal классом Dog. Теперь класс Dog также имеет конструктор со свойством объекта "this.name", как класс Animal

Код со скрина:
// Наследование типа класса (типы встроенных классов: Array, Date, String...)

class MyArray extends Array {
  constructor(...elements) {
      super(...elements);
  }

  getFirst() {
      return this[0];
  }
}



// Наследование конкретного класса созданного нами

class Animal {
  constructor(name) {
      this.name = name;
  }
}

class Dog extends Animal {}
🔥4👍1
Как можно добавить тень от элемента по контуру в CSS? 🔵🕳

Если использовать стандартное свойство для тени box-shadow будет добавлена тень от блока/контейнера/зоны элемента, но благодаря свойству filter со значением drop-shadow можно добиться тени именно по контуру объекта, будь-то неквадратное изображение или текст 🧩

Применяется свойство filter со значением drop-shadow почти так же как и свойство box-shadow, а разница очевидна (пример применения обоих свойств на скрине) 👁‍🗨
🔥4👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Как клиент взаимодействует с сервером с помощью JavaScript 🟨

Запрос от клиента 📨
Когда пользователь нажимает кнопку или выполняет какое-либо действие на веб-странице, браузер (клиент) отправляет запрос на сервер. Это может быть HTTP-запрос, например GET или POST.

Обработка на сервере ⚙️
Сервер получает запрос и выполняет необходимые действия: может обратиться в базу данных, обработать данные или выполнить другие операции. После этого сервер формирует ответ.

Ответ от сервера 📥
Сервер отправляет ответ к клиенту. Это может быть HTML-страница, JSON-данные или другой тип данных.

Обработка ответа в клиенте 🔄
Клиент получает ответ и с помощью JavaScript может обновить пользовательский интерфейс. К примеру, отобразить новые данные без перезагрузки страницы.

В видео мы рассмотрели пример запроса с помощью Fetch API 👁‍🗨
🔥4👍1
Благодаря методу endsWith можно проверить заканчивается ли строка на заданную букву в JavaScript

Применение стандартное: указываем строку и метод endsWith через точку, затем букву в скобках, наличие которой необходимо проверить в конце строки 🔦

Метод возвращает boolean значения true / false в зависимости от результата 🚥

Стоит учитывать регистр, в которой находится буква, которую мы проверяем. Если буква будет правильной, но регистр будет неверный - мы получим значение false 👁‍🗨
👍3🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Scope – это область видимости для переменных и функций 🔳

Есть три типа Scope: глобальный Scope, локальный (функциональный) и блочный ℹ️ 

Переменные объявленные на уровень выше будут видны также в скоупе на уровень ниже. То есть, например, переменная "a" с кода на гиф изображении будет доступна в локальном скоупе (области видимости функции Local), но переменная "b", которая объявлена внутри скоупа функции не будет видна в глобальном скоуп 👁‍🗨

Границы скоуп уровней определяются фигурными скобками. И, обычно, в редакторах кода можно увидеть характерную вертикальную линию, которая подсказывает границы внутренних Scope ☑️
🔥4👍1
Рассмотрим тип объекта Function в JavaScript ⚜️

Function – это тип объекта, который используется для определения и вызова функций 💡

Определить функцию можно с помощью выражения и с помощью конструктора 👁‍🗨

👉 Некоторые тонкости типа объектов Function:
функции могут принимать аргументы и их параметры через список аргументов
функции можно вызвать с помощью оператора вызова
объект Function позволяет использовать замыкание для сохранения доступа к переменным с более высокого уровня
👍2🔥2