Основные концепции JavaScript:

1. Что такое JavaScript? Чем он отличается от Java?

JavaScript — это высокоуровневый, динамический и интерпретируемый язык программирования, в основном используемый для веб-разработки. Он был создан Бренданом Эйхом в Netscape в 1995 году и с тех пор стал одним из самых популярных и широко используемых языков программирования в Интернете. JavaScript часто используется для добавления на веб-сайты интерактивных и динамических функций, таких как пользовательские интерфейсы, анимация и обработка данных.

Несмотря на похожие названия, JavaScript и Java — это два совершенно разных языка программирования с разными целями и функциями:

- Java: Java — это высокоуровневый язык программирования общего назначения, разработанный Джеймсом Гослингом в Sun Microsystems (сейчас принадлежит Oracle). В отличие от JavaScript, Java является компилируемым языком, что означает, что исходный код преобразуется компилятором в байт-код, а затем выполняется виртуальной машиной Java (JVM). Java используется для широкого спектра приложений, включая программное обеспечение для настольных компьютеров, мобильные приложения, серверные приложения и многое другое. Он известен своей портативностью, строгой типизацией и обширными библиотеками.

  • JavaScript: как упоминалось ранее, JavaScript — это язык сценариев, который в основном используется для веб-разработки. Обычно он встраивается непосредственно в код HTML и выполняется веб-браузерами для повышения функциональности и интерактивности веб-страниц. JavaScript интерпретируется, что означает, что код выполняется непосредственно браузером без необходимости отдельного этапа компиляции. Он динамически типизирован, что позволяет использовать гибкий и менее подробный код по сравнению с Java.

2. Объясните ключевые особенности JavaScript:

а. Легкий и интерпретируемый. JavaScript — это легкий язык, поскольку он не требует компиляции перед выполнением. Браузеры могут напрямую интерпретировать код JavaScript.

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

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

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

е. Замыкания: JavaScript поддерживает замыкания, которые позволяют функциям сохранять доступ к области действия своей внешней функции даже после завершения выполнения внешней функции.

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

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

час Управление DOM: JavaScript имеет обширную поддержку для взаимодействия с объектной моделью документа (DOM) веб-страницы, позволяя динамически обновлять и манипулировать элементами веб-страницы.

я. Универсальность. С появлением Node.js JavaScript теперь можно использовать для программирования на стороне сервера, что расширило спектр его приложений за пределы веб-браузеров.

3. Что такое переменные в JavaScript? Как вы их объявляете?

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

Чтобы объявить переменную в JavaScript, вы используете ключевые слова `var`, `let` или `const`, за которыми следует имя переменной. :

- `var`: исторически использовался для объявления переменных в JavaScript. Переменные, объявленные с помощью `var`, относятся к области действия функции, то есть они доступны только внутри функции, в которой они объявлены. Если они объявлены вне какой-либо функции, они становятся глобальными переменными, доступными во всем скрипте.

- `let`: Представленный в ECMAScript 6 (ES6), `let` позволяет объявлять переменные с областью действия блока. Блочная область означает, что переменная доступна только внутри блока (часть кода в фигурных скобках), где она объявлена. Это помогает избежать некоторых проблем, связанных с подъемом переменных и непреднамеренными глобальными переменными.

- `const`: также представленный в ES6, `const` используется для объявления констант. Константы имеют блочную область видимости, как и переменные, объявленные с помощью `let`, но их значение не может быть переназначено после инициализации. Однако для объектов и массивов, объявленных как константы, их свойства или элементы все еще могут быть изменены.

Вот примеры объявлений переменных:

var age = 30; // Function-scoped variable (or global if declared outside a function)
let name = "John"; // Block-scoped variable
const PI = 3.14159; // Block-scoped constant

4. Как вы различаете `null` и `undefined` в JavaScript?

В JavaScript как `null`, так и `undefined` означают отсутствие значения, но они используются в разных контекстах и ​​имеют разные значения:

  • `null`: это значение, представляющее преднамеренное отсутствие какого-либо значения объекта. Это примитивный тип в JavaScript, и когда переменная явно установлена ​​в `null`, это означает, что переменная преднамеренно пуста, или значение неизвестно или неприменимо. Например:
let someValue = null; // explicitly set to null

- `undefined`: в отличие от `null`, `undefined` не устанавливается явно. Если переменная объявлена, но ей не присвоено значение, или если функция не возвращает никакого явного значения, переменная или выражение по умолчанию будут иметь «неопределенное» значение. Например:

let someVariable; // declared but not assigned, so it's undefined
function doSomething() {
// no return statement, so the function returns undefined
}

Подводя итог, «null» — это преднамеренное отсутствие значения, тогда как «undefined» обычно обозначает непреднамеренное отсутствие или состояние по умолчанию, когда значение не присвоено.

5. Какие существуют типы данных в JavaScript?

JavaScript — это язык с динамической типизацией, что означает, что переменные могут содержать данные разных типов. Основные типы данных в JavaScript:

1. Примитивные типы данных:

- `число`: представляет как целые числа, так и числа с плавающей запятой.

- `string`: представляет последовательность символов, заключенную в одинарные (‘ ‘) или двойные (“ “) кавычки.

- `boolean`: представляет логическое значение — `true` или `false`.

- `null`: представляет преднамеренное отсутствие какого-либо значения объекта.

- `undefined`: представляет неинициализированное или недоступное значение.

- `символ`: введенный в ES6, представляет собой уникальное и неизменное значение, используемое в качестве идентификатора свойств объекта.

2. Сложные типы данных:

- `object`: представляет набор пар ключ-значение. Объекты можно создавать с помощью литералов объектов `{}`, конструкторов или классов.

3. Специальный тип данных:

- `функция`: в JavaScript функции считаются гражданами первого класса и могут быть назначены переменным или переданы в качестве аргументов другим функциям. Они также могут иметь свойства и методы, как и любой другой объект.

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