TGViewer
Frontend | Вопросы собесов Frontend | Вопросы собесов @easy_javascript_ru · 17.6K subscribers
Post #454 6.65K
Какие особенности в js ?
Спросят с вероятностью 3%

Это высокоуровневый, интерпретируемый язык программирования, который обладает рядом уникальных особенностей и возможностей. Рассмотрим основные из них:

1️⃣Динамическая типизация

Является языком с динамической типизацией, что означает, что тип переменной определяется во время выполнения, а не во время компиляции. Тип переменной может изменяться в процессе выполнения программы.
let variable = 42; // Число
variable = 'Hello, world!'; // Строка


2️⃣Функции первого класса

Являются объектами первого класса, что означает, что функции могут быть присвоены переменным, переданы как аргументы другим функциям и возвращены из других функций.
function greet(name) {
return `Hello, ${name}`;
}

const sayHello = greet;
console.log(sayHello('Alice')); // Hello, Alice

function executeFunction(fn, value) {
return fn(value);
}

console.log(executeFunction(greet, 'Bob')); // Hello, Bob


3️⃣Замыкания (Closures)

Это функции, которые имеют доступ к переменным из своей внешней функции даже после того, как внешняя функция завершила выполнение. Это позволяет создавать функции с привязанными к ним переменными из внешнего окружения.
function createCounter() {
let count = 0;
return function() {
count++;
return count;
};
}

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2


4️⃣Прототипное наследование

Использует прототипное наследование вместо классового. Каждый объект в JavaScript имеет скрытое свойство [[Prototype]], которое указывает на другой объект, используемый в качестве прототипа.
const animal = {
speak: function() {
console.log(`${this.name} издает звук`);
}
};

const dog = Object.create(animal);
dog.name = 'Рекс';
dog.speak(); // Рекс издает звук


5️⃣Асинхронность и события

Поддерживает асинхронное выполнение через коллбеки, промисы и async/await. Это позволяет обрабатывать события и операции ввода-вывода без блокировки основного потока выполнения.

Использование коллбеков:
function fetchData(callback) {
setTimeout(() => {
callback('Данные получены');
}, 1000);
}

fetchData((data) => {
console.log(data); // Данные получены (через 1 секунду)
});


Использование промисов:
function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Данные получены');
}, 1000);
});
}

fetchData().then(data => {
console.log(data); // Данные получены (через 1 секунду)
});


Использование async/await:
async function fetchData() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Данные получены');
}, 1000);
});
}

async function getData() {
const data = await fetchData();
console.log(data); // Данные получены (через 1 секунду)
}

getData();


6️⃣Интуитивно понятная работа с объектами

Имеет мощные встроенные функции для работы с объектами, такие как деструктуризация, операторы расширения и методы объектов.

Деструктуризация:
const person = {
name: 'Alice',
age: 30
};

const { name, age } = person;
console.log(name); // Alice
console.log(age); // 30


Операторы расширения:
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const mergedObj = { ...obj1, ...obj2 };

console.log(mergedObj); // { a: 1, b: 3, c: 4 }


Обладает множеством уникальных особенностей, таких как динамическая типизация, функции первого класса, замыкания, прототипное наследование, асинхронное программирование с коллбеками, промисами и async/await, интуитивно понятная работа с объектами и массивами, а также событийно-ориентированное программирование. Эти возможности делают его мощным и гибким инструментом для веб-разработки и других приложений.

👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1429 вопроса на Frontend разработчика. Ставь 👍 если нравится контент

🔐 База собесов | 🔐 База тестовых
  • 👍 31
  • ❤ 5
  • 🤔 3
More from @easy_javascript_ru
  1. Oct 16, 2026🤔 Что такое meta теги? Meta-теги – это специальные HTML-теги, которые содержат метаинформ…
  2. Oct 15, 2026Post #3044
  3. Oct 15, 2026🤔 Какие преимущества у di? Dependency Injection (DI) – это паттерн проектирования, которы…
  4. Oct 14, 2026🤔 Зачем создавались библиотеки react и другие? Библиотеки, такие как React, создавались д…
  5. Oct 13, 2026🤔 Что такое репозиторий? Это хранилище кода, файлов и их истории изменений. Используется…
  6. Oct 13, 2026🤔 Как мы можем замерить скорость работы участка кода с date.Now? В JavaScript можно замер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →