Дикий Григорий

Full-stack веб-разработчик

Вопросы и ответы по JavaScript. Часть 1

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

1.Что такое JavaScript?

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

2. Кикие типы есть в JavaScript?

JavaScript имеет следующие встроенные типы: Number, String, Boolean, Function, Object, Null, Undefined

3. Зачем используется функция isNaN?

Эта функция используется для проверки переменной или литерала на то является это ли не число. То есть она возвращает true, если аргумент не является числов.

4. Что такое бесконечность в JavaScript?

В JavaScript существует понятие бесконечности и отрицательной бесконечности. Infinity можно получить при делении на число близкое к нулю, а -Infinity на деление отрицательного числа на число близкое к нулю.

5. Что такое глобальные переменные и какие проблемы могут возникнуть с ними?

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

5. Что такое 'this' в JavaScript?

this в JavaScript - это указатель на объект в контексте которого он используется. Его удобно использовать при работе с объектами в JavaScript, для получения свойств и методов текущего объекта.

6. Как работают таймеры в JavaScript?

Для работы со таймерами в JavaScript существуют две функции: setTimeout и setInterval. Для очистки таймеров используются функции: clearTimeout и clearInterval.

setTimeout(func, delay) - используется для задания таймера, по истечению которого будет инициирован вызов функции func. Очистить таймер можно функцией clearTimeout.

setInterval(func, delay) - используется для задания интервала повторяющихся вызовов функции func. Остановить выполнение этой функции можно использовав clearInterval.

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

7. Зачем используется оператор ===?

Этот оператор используется для строгого сравнения и возвращает true при условии, что сравниваемые величины одного и того же типа и имеют одинаковые значения.

8. Как можно отправить данные формы используя JavaScript?

Предположим, что у нас на странице есть форма с id="form". Для того, чтобы отправить форму нужно выполнить код:

document.getElementById('form').submit();

9. Как можно изменить css/класс элемента?

// Классический метод

document.getElementById('elem').style.fontSize = '20';
document.getElementById('elem').className = 'newclass';

// Более современный

document.querySelector('#elem').style.cssText('font-size: 20px;');
document.querySelector('#elem').classList.add('newclass');

10. Возможно ли чтение и запись в файл в JavaScript?

Браузерный JavaScript не позволяет напрямую "общаться" с вашей файловой системой во избежание неприятностей с безопасностью.