Перейти к содержанию
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
Логотип бренда
Категории

javascript

Сообщения


  • Различия между Arrow Function, Function Declaration и Function Expression
    evoE evo

    1. Function Declaration (Объявление функции)

    Синтаксис:

    function имяФункции(параметры) {
      // тело функции
    }
    

    Пример:

    function sayHello(name) {
      return `Привет, ${name}!`;
    }
    
    console.log(sayHello("Анна")); // Привет, Анна!
    

    Особенности:

    • Объявляется с помощью ключевого слова function.
    • Поднимается (hoisted) — можно вызывать до её объявления в коде.
    • Имеет своё имя (может быть использовано для рекурсии).
    • Создаётся в глобальной области видимости или в области видимости функции, где объявлена.

    Пример hoisting:

    console.log(greet("Мария")); // Работает! Вывод: Здравствуй, Мария!
    
    function greet(name) {
      return `Здравствуй, ${name}!`;
    }
    

    2. Function Expression (Функциональное выражение)

    Синтаксис:

    const имяПеременной = function(параметры) {
      // тело функции
    };
    

    Пример:

    const sayGoodbye = function(name) {
      return `Пока, ${name}!`;
    };
    
    console.log(sayGoodbye("Иван")); // Пока, Иван!
    

    Особенности:

    • Функция присваивается переменной.
    • Не поднимается полностью — переменная поднимается, но не значение (функция).
    • Можно быть анонимной или именованной.
    • Часто используется как callback или для передачи функций как аргументов.

    Пример с именованной функцией (редко, но возможно):

    const factorial = function fact(n) {
      return n <= 1 ? 1 : n * fact(n - 1);
    };
    

    Важно:

    console.log(add(2, 3)); // Ошибка! Cannot access 'add' before initialization
    
    const add = function(a, b) {
      return a + b;
    };
    

    ⚠️ const и let не поднимаются (или поднимаются, но в "temporal dead zone"), поэтому вызов до объявления — ошибка.


    3. Arrow Function (Стрелочная функция)

    Синтаксис:

    const имя = (параметры) => {
      // тело функции
    };
    

    Примеры:

    // Однострочная (неявный return)
    const multiply = (a, b) => a * b;
    
    // Многострочная (явный return нужен)
    const divide = (a, b) => {
      if (b === 0) return "Ошибка: деление на ноль";
      return a / b;
    };
    
    // Без параметров
    const greet = () => "Привет, мир!";
    
    // Один параметр — скобки можно опустить
    const square = x => x * x;
    

    Особенности:

    • Нет собственного this, arguments, super, new.target.
    • Не поднимается (как и function expression).
    • Не имеет имени (анонимная), но может быть присвоена переменной.
    • Лексическое this — берёт this из внешнего контекста.
    • Не может использоваться как конструктор (new вызовет ошибку).
    • Не имеет arguments — используйте ...args.

    Различия: Сравнение

    Характеристика Function Declaration Function Expression Arrow Function
    Синтаксис function name() {} const f = function() {} const f = () => {}
    Hoisting Да (вся функция) Нет (только переменная) Нет
    this Собственное (зависит от вызова) Собственное Лексическое (взято извне)
    arguments Есть Есть Нет (используйте ...args)
    Можно использовать new Да Да Нет (ошибка)
    Имя функции Да Может быть (но редко) Нет (анонимная)
    Подходит для методов объекта Да Да Осторожно (из-за this)

    Пример с this — ключевое отличие

    const user = {
      name: "Алексей",
      regularFunction: function() {
        console.log("Привет, я " + this.name);
      },
      arrowFunction: () => {
        console.log("Привет, я " + this.name); // this — не user!
      }
    };
    
    user.regularFunction(); // Привет, я Алексей
    user.arrowFunction();   // Привет, я undefined (в браузере может быть window.name)
    

    Почему? У стрелочной функции this берётся из внешнего контекста, а не из объекта user.


    Когда что использовать?

    Тип функции Когда использовать
    Function Declaration Когда нужна hoisting, простая именованная функция
    Function Expression Когда функция — значение (callback, замыкание)
    Arrow Function Для коротких функций, в map/filter, когда нужен лексический this

    Примеры в реальных сценариях

    1. Arrow Function в map

    const numbers = [1, 2, 3];
    const doubled = numbers.map(n => n * 2); // [2, 4, 6]
    

    2. Function Expression как callback

    button.addEventListener('click', function() {
      console.log('Кнопка нажата');
    });
    

    3. Function Declaration — удобно для чтения

    function validateEmail(email) {
      return email.includes("@");
    }
    

    📌 Вывод

    • Function Declaration — классика, поднимается, удобна для простых функций.
    • Function Expression — гибкая, не поднимается, хороша для динамических функций.
    • Arrow Function — короткая, лексическое this, идеальна для колбэков и однострочных операций.

    Выбирайте в зависимости от контекста: нужно ли this, нужна ли hoisting, где используется функция.

    JavaScript javascript

  • Где изучать TypeScript?
    evoE evo

    Изучить TypeScript можно на freecodecamp

    А также можно прочитать книгу профессиональный TypeScript:

    a20a5b0b-0a11-4ca5-a8ad-c4a443064bed-image.png

    JavaScript javascript typescript

  • chmod 777 на папку и включая все
    adminA admin

    Если вы используете консольную команду, то она будет такой:

    chmod -R 777 /www/project. Опции -R (или --recursive) делают его рекурсивным.

    Или, если вы хотите, чтобы все файлы в текущем каталоге имели все разрешения, введите:

    chmod -R 777 ./

    Если вам нужна дополнительная информация о chmod команде посмотреть и почитать можно тут.

    DevOps linux

  • Как подключить CSS к CSS: простой пример
    evoE evo

    В CSS можно подключить один файл стилей к другому с помощью специальной директивы @import. Это удобно, если вы хотите разделить стили на несколько файлов для удобства организации проекта.

    Используйте директиву @import в самом начале файла CSS, чтобы "подтянуть" другой файл. Синтаксис следующий:

    @import url("путь_к_файлу.css");
    
    • Обязательно пишите эту запись в начале файла до всех остальных CSS правил.
    • Путь к файлу может быть относительным или абсолютным.

    Предположим, у вас есть два файла:

    • base.css — содержит базовые стили
    • style.css — основной файл, куда вы подключите base.css

    Содержимое style.css:

    @import url("base.css");
    
    /* Далее идут остальные стили */
    body {
      background-color: #f0f0f0;
    }
    
    h1 {
      color: blue;
    }
    

    В таком случае стили из base.css автоматически применятся в том же документе, где подключён style.css.

    Для чего вообще это необходимо?

    • Позволяет разделять стили по тематике или компонентам.
    • Упрощает поддержку крупных проектов.
    • Можно подключать общие стили в нескольких местах без дублирования кода.

    На заметку:

    • Директива @import замедляет загрузку, так как браузер сначала загружает первый файл, а затем все импортированные.
    • Лучше использовать @import для небольших и редко изменяемых файлов.
    • Для большого проекта рекомендовано использовать сборщики и препроцессоры, которые оптимизируют подключение.
    Фронтенд css

  • Почему страница временно недоступна?
    adminA admin

    f95968fb-0cd4-4f7c-ade6-9157a3ad5ad4-image.png

    Встречали сообщение «The page you are looking for is temporarily unavailable. Please try again later»?

    Это стандартное уведомление, которое появляется, когда веб-страница временно недоступна. Причин для этого может быть несколько:

    • Технические работы на сайте
    • Перегрузка сервера из-за большого количества посетителей
    • Временные сбои в интернет-соединении или на стороне хостинга
    • Проблемы с самим сайтом (например, ошибки в коде)

    Обычно такая ошибка носит временный характер и решается в течение нескольких минут или часов. Для пользователя рекомендуется подождать, а затем попробовать обновить страницу или зайти позже.

    Если же проблема возникает часто, это может указывать на более серьёзные технические неполадки, и стоит связаться с поддержкой сайта.

    Так что не паникуйте, если видите это сообщение — чаще всего это просто временная профилактика или небольшой сбой!

    Новости ошибки новости

  • Блокчейн: что это такое простыми словами
    adminA admin

    qqq.png

    В последние годы слово «блокчейн» становится всё более популярным. Многие слышали о нём в контексте криптовалют, но далеко не все понимают, что это такое. В этой статье я объясню, что такое блокчейн простыми словами, почему эта технология важна и как она работает.


    Что такое блокчейн?

    Блокчейн — это цифровая система хранения и передачи данных в виде цепочки блоков.

    • Информацию в блокчейне записывают не на одном компьютере, а одновременно на множестве устройств по всему миру.
    • Каждый блок содержит определённый объём данных и связан с предыдущим блоком, образуя единую цепочку.
    • Изменить данные в одном блоке можно только при изменении всех последующих блоков, что практически невозможно сделать без согласия большинства участников.

    Основные характеристики блокчейна

    1. Децентрализация
      Данные хранятся не централизованно, а на множестве компьютеров (узлов), что исключает единую точку отказа.

    2. Прозрачность
      Все участники сети видят записи в блокчейне, что повышает доверие и предотвращает мошенничество.

    3. Безопасность
      Благодаря криптографии и связям между блоками данные защищены от подделок и несанкционированных изменений.

    4. Неизменяемость
      Записи в блокчейне нельзя изменить или удалить задним числом без согласия большинства участников сети.

    Как работает блокчейн?

    • Новые данные собираются в блоки (например, информация о транзакциях).
    • Каждый блок получает уникальный цифровой «отпечаток» (хеш) и содержит ссылку на предыдущий блок.
    • Блоки соединяются цепочкой, формируя хронологическую и защищённую запись.
    • Все участники сети проверяют и подтверждают правильность новых блоков, прежде чем они становятся частью цепи.

    Для чего используется блокчейн?

    • Криптовалюты — например, биткоин, где обеспечивается защита от двойного расходования денег.
    • Финансовые услуги — безопасные переводы, умные контракты и автоматизация процессов.
    • Управление документами — защита авторских прав и проверка подлинности документов.
    • Голосование — прозрачность и честность выборов без возможности фальсификаций.
    • Логистика и цепочки поставок — отслеживание товаров на каждом этапе.

    Почему блокчейн важен?

    Блокчейн меняет подход к хранению и передаче данных, обеспечивая высокую степень доверия без необходимости посредников. Это помогает создавать более прозрачные, надёжные и эффективные системы в самых разных областях.


    Блокчейн — это инновационная технология, которая позволяет хранить и передавать информацию надежно и прозрачно, используя цепочку связанных блоков, защищенных криптографией. Несмотря на то, что технология изначально появилась для криптовалют, её возможности далеко шире и уже сегодня находят применение в разнообразных сферах жизни.

    Понимание основ блокчейна помогает лучше осознать современные цифровые технологии и их потенциал для будущего.

    Новости новости

  • ddos атака что это
    adminA admin

    692b944d-c236-4a14-849e-61244f2794c2-image.png

    DDoS-атака (от англ. Distributed Denial of Service — распределённая атака типа «отказ в обслуживании») — это вид кибератаки, при котором злоумышленник пытается сделать сайт, сервер или онлайн-сервис недоступным для пользователей, перегружая его огромным количеством ложных запросов.


    Как это работает?

    Представь, что у тебя есть маленький магазин, и в него может одновременно зайти только 5 человек.
    Теперь представь, что 1000 человек одновременно пытаются войти — дверь заблокирована, настоящие покупатели не могут попасть внутрь.
    Вот так примерно и работает DDoS-атака, только вместо магазина — веб-сайт, а вместо людей — компьютеры или устройства, которые по команде атакуют сервер.


    Технически:

    • Злоумышленник использует сеть заражённых устройств (ботнет) — это могут быть компьютеры, камеры, роутеры и т.д., которые он контролирует без ведома владельцев.
    • Все эти устройства одновременно начинают отправлять запросы на цель — например, на сайт компании.
    • Сервер не справляется с таким наплывом трафика и либо:
      • Замедляется до полной неработоспособности,
      • Или падает (перестаёт отвечать на запросы).

    Пример:

    Сайт банка работает нормально — клиенты заходят, оплачивают услуги, смотрят баланс.
    Но вдруг начинается DDoS-атака: миллионы запросов за секунду.
    Сервер перегружен — сайт не открывается, клиенты не могут пользоваться услугами.
    Это может нанести репутационный и финансовый ущерб.


    Виды DDoS-атак:

    1. Атаки на сетевой уровень (например, flood UDP, ICMP) — перегружают канал связи.
    2. Атаки на прикладной уровень (например, HTTP flood) — имитируют реальных пользователей, запрашивая страницы сайта.
    3. Атаки на протоколы (например, SYN flood) — используют уязвимости в сетевых протоколах.

    Как защищаются?

    • Используют специальные фильтры и системы защиты (например, Cloudflare, AWS Shield).
    • Распределяют нагрузку между несколькими серверами.
    • Блокируют подозрительные IP-адреса.
    • Увеличивают пропускную способность канала (но это не всегда помогает).

    Почему это опасно?

    • Может нарушить работу бизнеса, госучреждений, медицинских сервисов.
    • Иногда используется как прикрытие для других атак (например, кражи данных).
    • Может быть политической или мстительной.

    Простыми словами:

    DDoS-атака — это когда хакеры "забивают" сайт такими объёмами трафика, что он перестаёт работать, и обычные пользователи не могут на него зайти.

    DevOps

  • Что такое функция замыкания в JavaScript
    evoE evo

    Функция замыкания (closure) в JavaScript — это одна из ключевых концепций языка, которая позволяет функции запоминать и получать доступ к переменным из внешней области видимости, даже после того, как внешняя функция завершила своё выполнение.

    Простыми словами: Замыкание — это функция внутри другой функции, которая "запоминает" окружение, в котором была создана, и может использовать переменные из этого окружения.

    В JavaScript действует лексическое окружение — функция "знает", где она была определена, и имеет доступ к переменным из родительской области видимости.

    ✅ Пример замыкания:

    function outerFunction(x) {
        return function innerFunction(y) {
            return x + y;
        };
    }
    
    const add5 = outerFunction(5);  // x = 5 запоминается
    console.log(add5(3));           // 8 → innerFunction всё ещё "помнит" x = 5
    

    Что происходит:

    1. outerFunction(5) вызывается, x = 5.
    2. Возвращается innerFunction, которая использует x.
    3. Даже после завершения outerFunction, innerFunction всё ещё имеет доступ к x.
    4. Это и есть замыкание — innerFunction "замкнула" в себе переменную x.

    ✅ Ещё один пример — счётчик:

    function createCounter() {
        let count = 0;
        return function() {
            count++;
            console.log(count);
        };
    }
    
    const counter = createCounter();
    counter(); // 1
    counter(); // 2
    counter(); // 3
    
    • Переменная count находится внутри createCounter, но возвращаемая функция может к ней обращаться.
    • Каждый вызов увеличивает count, и значение сохраняется между вызовами, потому что замыкание "удерживает" переменную.

    📌 Важные особенности замыканий:

    • Замыкания позволяют инкапсулировать данные (как приватные переменные).
    • Они используются для создания фабрик функций, модулей, обработчиков событий и т.д.
    • Замыкания могут привести к утечкам памяти, если держат ссылки на большие объекты, которые больше не нужны.

    Где используются замыкания?

    • В модульном паттерне (приватные переменные и методы).
    • При работе с колбэками и асинхронным кодом (например, в setTimeout).
    • В функциях высшего порядка (map, filter, reduce).
    • При создании декораторов и каррирования.

    Замыкание — это функция, которая "запоминает" своё лексическое окружение, даже когда вызывается вне его.

    JavaScript javascript

  • Японская команда создает беспроводное устройство левитации
    adminA admin

    320b6b38-9b5f-4d93-866c-473e9c18be25-image.png

    Исследователи из Йокогамского национального университета достигли значительного прорыва в технологии бесконтактного транспорта с помощью беспроводного левитационного устройства, которое может развивать скорость свыше трех метров в секунду при полном устранении трения. Устройство размером с ладонь, использующее акустическую левитацию и беспроводное управление, представляет собой потенциальный прорыв для миниатюрного производства, биомедицинских применений и точного обращения с деликатными компонентами.

    Опубликованное в Advanced Intelligent Systems в июле 2025 года исследование демонстрирует, как команда под руководством доцента Оми Футивами преодолела традиональные ограничения систем акустической левитации. "Хотя акустическая левитация устраняет трение о пол, обычные системы полагаются на кабели, которые нарушают позиционирование," объяснил Футивами. "Мы решили эту проблему, разработав беспроводное левитационное устройство с беспроводной схемой привода, обеспечивающее стабильную высоту левитации и высокоскоростной, гибкий транспорт".

    Прорывная технология обеспечивает всенаправленное движение

    Устройство работает с использованием акустической левитации в сочетании с пьезоэлектрическим актуатором, который создает "сжимающую пленку" воздуха между устройством и поверхностью. Этот микроскопически тонкий слой жидкости кардинально снижает контактное трение, позволяя устройству без усилий скользить по плоским поверхностям в любом направлении.

    Тестирование показало эффективность устройства на наклонных поверхностях до 10 градусов. Когда система левитации была отключена, устройство не смогло преодолеть гравитационное притяжение на том же наклоне, что демонстрирует критическую роль левитационных сил. Система может переносить примерно 43 грамма полезной нагрузки в дополнение к собственному весу общей массой 150 граммов без ущерба для производительности.

    Применение в различных отраслях промышленности

    Технология решает растущие проблемы транспортировки миниатюрных компонентов в механических, электронных, химических и биомедицинских секторах. Традиционные системы конвейерных лент страдают от ограничений трения, которые снижают скорость и точность при обращении с мелкими деталями.

    Согласно исследованию, опубликованному EurekAlert, система сверхбыстрого транспорта может преобразовать сборочные линии производства микроэлектроники, где точность и скорость имеют первостепенное значение. В биомедицинских применениях бесконтактные механизмы доставки могут транспортировать хрупкие клетки или образцы без риска загрязнения или механических повреждений.

    Планы будущего развития

    Исследовательская команда планирует интегрировать несколько блоков левитации в цельные конструкции роботов с координированными механизмами движения для выполнения сложных манипуляционных задач. Текущие усилия сосредоточены на улучшении стабильности левитации при переменных нагрузочных условиях и повышении производительности на неровных поверхностях.

    Исследование получило поддержку от Фонда стипендий Наканиши, Фонда NSK по развитию мехатроники и Фонда промышленных и экономических исследований Такахаси. Ведущий автор Юта Сунохара работал вместе с коллегами из департамента машиностроения Йокогамского национального университета и департамента электротехники Технологического института Айти.

    Новости новости

  • Вывода инфы о системе прямо в терминале
    adminA admin

    a8501dec-6120-4816-88a5-bfb201b61ad5-image.png

    Тулзу для быстрого, настраиваемого и красивого вывода инфы о системе прямо в терминале.

    Работает на Linux, macOS, Windows, BSD, Android и даже Haiku. Стартует мгновенно, ест мало, поддерживает темы, модули и цветовые схемы.

    Link Preview Image
    GitHub - fastfetch-cli/fastfetch: A maintained, feature-rich and performance oriented, neofetch like system information tool.

    A maintained, feature-rich and performance oriented, neofetch like system information tool. - fastfetch-cli/fastfetch

    favicon

    GitHub (github.com)

    Новости новости

Список участников

evoE evo
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Войдите или зарегистрируйтесь для поиска.
  • Первое сообщение
    Последнее сообщение
0
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы