0Pricing
JavaScript Academy · Урок

Глобальные объекты, доступность fetch, файловые и сетевые API

Безопасно определяйте среду выполнения (globalThis/window/global), проверяйте доступность fetch и разберитесь, почему для работы с файлами нужен Node, тогда как браузер сосредоточен на DOM и сети

«Глобальные объекты, доступность fetch, файловые и сетевые API» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.

Общая картина

Цель: понимать, где выполняется ваш код.

  • Глобальные объекты: globalThis, window, global
  • fetch: проверяйте наличие возможности, а не предполагайте её
  • Файлы: в Node есть fs, а в браузерах его нет
  • Адреса: URL работает в обеих средах
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 1

Безопасное определение среды выполнения

Используйте проверки typeof, чтобы избежать ReferenceErrors и определить, где выполняется код.

// Detect presence of common globals
const hasWindow = typeof window !== "undefined";
const hasGlobal = typeof global !== "undefined";
const hasProcess = typeof process !== "undefined" && process && typeof process.version === "string";

console.log("globalThis exists?", typeof globalThis !== "undefined");
console.log("window?", hasWindow);
console.log("global?", hasGlobal);
console.log("Node process?", hasProcess);
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 2

fetch: проверка наличия возможности

В браузерах обычно есть fetch, а в старых версиях Node его может не быть. Сначала проверьте typeof fetch.

// Feature-detect fetch; do not assume it exists everywhere
const hasFetch = typeof fetch === "function";
console.log("fetch available?", hasFetch);

// If available, you could call fetch(...). For a safe demo we only log.
if (!hasFetch) {
  console.log("Provide a fallback or use a library in Node versions without fetch.");
}
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 3

Файлы: Node и браузер

Node предоставляет fs для работы с файлами, а браузер — нет. Сохраняйте безопасность одного и того же пути выполнения с помощью проверки возможности.

// Files are a Node concern; browsers cannot read your disk directly
const hasRequire = typeof require === "function";
console.log("CommonJS require available?", hasRequire);

// Safe message instead of real file I/O (keeps the demo runnable everywhere)
if (hasRequire) {
  console.log("In Node you can use fs for files; in browsers you cannot.");
} else {
  console.log("No require here; likely a browser-like or sandboxed runtime.");
}
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 4

Общее средство: API URL

Класс URL одинаково разбирает адреса в разных средах выполнения; это удобно для небольших инструментов.

// URL is available in both environments
const u = new URL("https://example.com/path?x=1#top");
console.log("host:", u.host);
console.log("pathname:", u.pathname);
console.log("search:", u.search);
console.log("hash:", u.hash);
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 5

Привычки для начинающих

Советы:

  • Проверяйте typeof fetch перед использованием.
  • Для работы с файлами нужен Node (например, fs), а браузеры ориентированы на DOM и сеть.
  • Используйте globalThis для переносимых глобальных объектов.
  • Предпочитайте небольшие проверки возможностей догадкам о среде выполнения.
Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 6

Тест по обнаружению fetch

Быстрая проверка: безопасное обнаружение fetch.

Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 7

Повторение

Повторение: определяйте среду выполнения с помощью безопасных проверок typeof, проверяйте наличие fetch, помните, что файлы относятся к стороне Node, и используйте URL в обеих средах.

Глобальные объекты, доступность fetch, файловые и сетевые API — иллюстрация 8

Часто задаваемые вопросы

Урок «Глобальные объекты, доступность fetch, файловые и сетевые API» бесплатный?

Да — полный текст урока «Глобальные объекты, доступность fetch, файловые и сетевые API» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Глобальные объекты, доступность fetch, файловые и сетевые API»?

Безопасно определяйте среду выполнения (globalThis/window/global), проверяйте доступность fetch и разберитесь, почему для работы с файлами нужен Node, тогда как браузер сосредоточен на DOM и сети Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Глобальные объекты, доступность fetch, файловые и сетевые API»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Глобальные объекты, доступность fetch, файловые и сетевые API
  2. Особенности загрузчика ESM, различия путей и URL
  3. Переменные среды и схемы конфигурации
← Назад к JavaScript Academy