Часто задаваемые вопросы и ответы на собеседовании по JavaScript

Опубликовано: 2023-01-13

Наличие JavaScript в вашем портфолио увеличивает шансы получить роль разработчика программного обеспечения. Тем не менее, давайте проверим часто задаваемые вопросы интервью JavaScript.

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

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

JavaScript

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

JavaScript в основном создан для Интернета. Но теперь это не только для Интернета. С помощью таких сред, как Node, Deno и т. д., мы можем запустить его практически на любой платформе.

Давайте проверим некоторые преимущества этого.

Преимущества JavaScript

  1. Легко начать работу. Вы можете изучить его даже без каких-либо знаний в области кодирования.
  2. Большое сообщество вокруг него. Вы получите всю необходимую помощь, если застрянете где-нибудь.
  3. Существует множество библиотек/фреймворков, созданных с использованием JavaScript, что помогает быстрее разрабатывать приложения.
  4. Мы можем разрабатывать интерфейс, бэкэнд, приложения для Android, iOS и т. д. с помощью JavaScript. С его помощью мы можем создать практически любой тип приложения. Но он более надежен в веб-разработке.

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

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

  • Число
  • Нить
  • логический
  • Неопределенный
  • Нулевой
  • BigInt
  • Условное обозначение
  • Объект

Все типы данных, кроме Object , называются примитивными значениями. И они неизменны.

Какие есть встроенные методы в JavaScript?

Встроенные методы в JavaScript различны для каждого типа данных. Мы можем получить доступ к этим встроенным методам, используя соответствующий тип данных. Давайте рассмотрим некоторые встроенные методы для разных типов данных и структур данных.

  1. Число
    • toFixed
    • нанизывать
  2. Нить
    • в нижнем регистре
    • начинается с
    • графикВ
  3. Множество
    • фильтр
    • карта
    • для каждого

Для каждого типа данных существует множество встроенных методов. Вы можете проверить ссылки на все встроенные методы различных типов данных и структур данных.

Как создать массив в JavaScript?

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

Мы можем создать массив, используя квадратные скобки [] . Просто и быстро создавать объекты

 // Empty array const arr = []; // Array with some random values const randomArr = [1, "One", true]; console.log(arr, randomArr);

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

 // Empty array const arr = new Array(); // Array with some random values const randomArr = new Array(1, "One", true); console.log(arr, randomArr);

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

Как создать объект в JavaScript?

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

Мы можем создавать объекты с помощью фигурных скобок {} . Создавать объекты просто и быстро.

 // Empty object const object = {}; // Object with some random values const randomObject = { 1: 2, one: "Two", true: false }; console.log(object, randomObject);

Мы можем создавать объекты с помощью конструктора Object . Люди редко используют это в общих проектах.

 // Empty object const object = new Object(); // Object with some random values const randomObject = new Object(); randomObject[1] = 2; randomObject["one"] = "Two"; randomObject[true] = false; console.log(object, randomObject);

Объекты JavaScript изменяемы, т. е. мы можем изменить их после создания, как вы видите во втором примере.

Как вы отлаживаете код JavaScript?

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

№1. логирование

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

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

№ 2. Инструменты разработчика

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

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

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

№3. Иды

Мы можем использовать IDE для отладки JavaScript. VS Code поддерживает отладку с помощью точек останова. Функция отладки может отличаться в зависимости от используемой IDE. Но большинство IDE будут иметь эту функцию.

Как добавить код JavaScript в файл HTML?

Мы можем добавить HTML-файл JavaScript, используя тег script . Вы можете проверить пример ниже.

 <!DOCTYPE html> <html lang="en"> <head> <title>Geekflare</title> </head> <body> <h1>Geekflare</h1> <script> // JavaScript code goes here console.log("This is JavaScript code"); </script> </body> </html>

Что такое файлы cookie?

Файлы cookie — это пары «ключ-значение», используемые для хранения небольшой информации. Информация может быть любой. Мы можем установить срок действия файлов cookie, которые будут удалены по истечении срока их действия. Они широко используются для хранения информации пользователей.

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

Как прочитать куки?

Мы можем прочитать cookie в JavaScript, используя document.cookie . Он вернет все файлы cookie, которые мы создали.

 console.log("All cookies", document.cookie);

Он вернет пустую строку, если файлы cookie отсутствуют.

Как создать и удалить куки?

Мы можем создать файлы cookie, установив пару ключ-значение в document.cookie . Давайте посмотрим пример.

 document.cookie = "one=One;";

В приведенном выше синтаксисе one ключ cookie и One являются его значением. Мы можем добавить в файл cookie дополнительные атрибуты, такие как домен, путь, срок действия и т. д.; каждый из них должен быть разделен точкой с запятой (;) . Все атрибуты являются необязательными.

Давайте посмотрим на пример с атрибутами.

 document.cookie = "one=One;expires=Jan 31 2023;path=/;";

В приведенном выше коде мы добавили дату истечения срока действия и путь к файлу cookie. Если срок действия не указан, файл cookie будет удален после сеанса. Путь по умолчанию будет путем к файлу. Формат даты истечения срока действия должен быть в формате GMT.

Давайте посмотрим, как создать несколько файлов cookie.

 document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;";

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

 document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "one=Two;path=/;";

Мы удалили дату истечения срока действия из файла cookie и изменили значение.

Используйте дату истечения срока действия в будущем, когда вы тестируете код, чтобы он работал правильно. Если вы сохраните ту же дату 31 января 2023 года даже после 31 января 2023 года, файлы cookie не будут созданы.

Мы видели, как создавать и обновлять файлы cookie. Давайте посмотрим, как удалить куки.

Удалить куки легко. Просто измените дату истечения срока действия файла cookie на любую прошедшую дату. Проверьте пример ниже.

 // Creating cookies document.cookie = "one=One;expires=Jan 31 2023;path=/;"; document.cookie = "two=Two;expires=Jan 31 2023;path=/;"; document.cookie = "three=Three;expires=Jan 31 2023;path=/;"; // Deleting the last cookie document.cookie = "three=Three;expires=Jan 1 2023;path=/;";

Вы не найдете последний файл cookie в файлах cookie, поскольку он удаляется в последней строке кода. Вот и все для учебника min cookies.

Какие существуют различные фреймворки JavaScript?

Существует множество JavaScript-фреймворков. React, Vue, Angular и т. д. для разработки пользовательского интерфейса. Express, Koa, Nest и т. д. для разработки на стороне сервера. NextJS, Gatsby и т. д. для создания статических сайтов. React Native, Ionic и т. д. для разработки мобильных приложений. Здесь мы упомянули некоторые фреймворки JavaScript. Вы можете найти больше фреймворков, на изучение которых уйдет много времени. Исследуйте, когда они вам нужны.

Замыкания в JavaScript

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

 function outer() { const a = 1; function inner() { // We can access all the data from the outer function scope here // The data will be available even if we execute this function outside the outer function // as inners' closure formed while creating it console.log("Accessing a inside inner", a); } return inner; } const innerFn = outer(); innerFn();

Замыкания широко используются в приложениях JavaScript. Возможно, вы использовали их раньше, не понимая, что это замыкания. Есть намного больше, чем это, чтобы узнать о замыканиях. Убедитесь, что вы полностью усвоили эту концепцию.

Подъем в JavaScript

Подъем — это процесс в JavaScript, при котором объявление переменных, функций и классов перемещается в верхнюю часть области видимости перед выполнением кода.

 // Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` var name = "Geekflare";

Если вы запустите приведенный выше код, вы не увидите никакой ошибки. Но на большинстве языков вы получите ошибку. Вывод будет undefined , так как подъем только перемещает объявления наверх, и он не будет инициализировать его до строки номер 3.

Измените var на let или const следующим образом и снова запустите код.

 // Accessing `name` before declaring console.log(name); // Declaring and initializing the `name` const name = "Geekflare";

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

 ReferenceError: Cannot access 'name' before initialization

Итак, здесь в ES6 введены let и const , к которым нельзя получить доступ до инициализации, как предполагает ошибка. Это связано с тем, что переменные, объявленные с помощью let или const , будут находиться во временной мертвой зоне (TDZ) до тех пор, пока строка не будет инициализирована. Мы не можем получить доступ к переменным из TDZ.

Каррирование в JavaScript

Каррирование — это метод преобразования функций с большим количеством параметров в меньшее количество параметров с несколькими вызываемыми объектами. С его помощью мы можем преобразовать вызываемую функцию add(a, b, c, d) в callable add(a)(b)(c)(d). Давайте посмотрим на примере, как это сделать.

 function getCurryCallback(callback) { return function (a) { return function (b) { return function (c) { return function (d) { return callback(a, b, c, d); }; }; }; }; } function add(a, b, c, d) { return a + b + c + d; } const curriedAdd = getCurryCallback(add); // Calling the curriedAdd console.log(curriedAdd(1)(2)(3)(4));

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

Разница между документом и окном

window — это самый верхний объект в браузере. Он содержит всю информацию об окне браузера, такую ​​как история, местоположение, навигатор и т. д.; он глобально доступен в JavaScript. Мы можем использовать его прямо в нашем коде без какого-либо импорта. Мы можем получить доступ к свойствам и методам объекта window без window.

document является частью window объекта. Весь HTML-код, загруженный на веб-страницу, преобразуется в объект документа. Объект документа относится к специальному элементу HTMLDocument, который будет иметь другие свойства и методы, как и все элементы HTML.

window объект представляет собой окно браузера, а document представляет HTML-документ, загруженный в это окно браузера.

Разница между клиентской и серверной частью

Клиентская сторона относится к конечному пользователю, использующему приложение. Сторона сервера относится к веб-серверу, на котором развернуто приложение.

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

Разница между внутренним HTML и внутренним текстом

И innerHTML , и innerText являются свойствами элементов HTML. Мы можем изменить содержимое элемента HTML, используя эти свойства.

Мы можем присвоить строке HTML свойство innerHTML , отображаемое как обычный HTML. Проверьте приведенный ниже пример.

 const titleEl = document.getElementById("title"); titleEl.innerHTML = '<span style="color:orange;">Geekflare</span>';

Добавьте один элемент с title id в свой HTML и добавьте приведенный выше скрипт в файл JavaScript. Запустите код и посмотрите результат. Вы получите Geekflare в оранжевом цвете. И если вы проверите элемент, он будет внутри тега span . Таким образом, innerHTML возьмет строку HTML и отобразит ее как обычный HTML.

Внутренний innerText на другой стороне возьмет обычную строку и отобразит ее как есть. Он не будет отображать HTML, например innerHTML . Измените innerHTML на innerText в приведенном выше коде и проверьте вывод.

 const titleEl = document.getElementById("title"); titleEl.innerText = '<span style="color:orange;">Geekflare</span>';

Теперь вы увидите именно ту строку, которую мы предоставили на веб-странице.

Разница между let и var

Ключевые слова let и var используются для создания переменных в JavaScript. Ключевое слово let появилось в ES6.

let имеет блочную область видимости, а var — функциональную область.

 { let a = 2; console.log("Inside block", a); } console.log("Outside block", a);

Запустите приведенный выше код. Вы получите сообщение об ошибке в последней строке, так как мы не можем получить доступ к let a за пределами блока, потому что он находится в блочной области. Теперь измените его на var и запустите снова.

 { var a = 2; console.log("Inside block", a); } console.log("Outside block", a);

Вы не получите никакой ошибки, так как мы также можем получить доступ a переменной вне блока. Теперь давайте заменим блок функцией.

 function sample() { var a = 2; console.log("Inside function", a); } sample(); console.log("Outside function", a);

Вы получите справочную ошибку, если запустите приведенный выше код, поскольку мы не можем получить доступ к var a it вне функции, потому что она находится в области действия функции.

Мы можем повторно объявить переменные, используя ключевое слово var , но мы не можем повторно объявить переменные, используя ключевое слово let . Давайте посмотрим пример.

 var a = "Geekflare"; var a = "Chandan"; console.log(a);
 let a = "Geekflare"; let a = "Chandan"; console.log(a);

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

Разница между хранилищем сеанса и локальным хранилищем

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

Хранилище сеанса будет очищено после завершения сеанса (при закрытии браузера). Хранилище местоположения не будет очищено, пока мы его не очистим.

Мы можем получить доступ, обновить и удалить хранилище сеансов и хранилище местоположения с помощью объектов sessionStorage и localStorage соответственно.

Что такое NaN в JavaScript?

NaN сокращенно обозначается как Not-a-Number . Это означает, что что-то не является допустимым/допустимым числом в JavaScript. В некоторых случаях мы получим NaN в качестве вывода, например 0/0 , undefined * 2 , 1 + undefined , null * undefined и т. д.,

Что такое лексическая область видимости?

Лексическая область видимости относится к доступу к переменным из родительской области. Допустим, у нас есть функция с двумя внутренними функциями. Самая внутренняя функция может получить доступ к переменным области видимости двух своих родительских функций. Точно так же функция 2-го уровня может получить доступ к самой внешней области действия функции. Давайте посмотрим на это на примере.

 function outermost() { let a = 1; console.log(a); function middle() { let b = 2; // `a` are accessible here console.log(a, b); function innermost() { let c = 3; // both `a` and `b` are accessible here console.log(a, b, c); } innermost(); } middle(); } outermost();

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

Что передается по значению и передается по ссылке?

Передача по значению и передача по ссылке — это два способа передачи аргументов функции в JavaScript.

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

 function sample(a) { // changing the value of `a` a = 5; console.log("Inside function", a); } let a = 3; sample(a); console.log("Outside function", a);

Вы увидите, что исходное значение a не изменилось, хотя мы изменили его внутри функции.

Передать по ссылке: он передает ссылку на данные в функцию. Таким образом, когда мы вносим какие-либо изменения в функцию, она также меняет исходные данные.

 function sample(arr) { // adding a new value to the array arr.push(3); console.log("Inside function", arr); } let arr = [1, 2]; sample(arr); console.log("Outside function", arr);

Вы увидите, что исходное значение arr изменилось, когда мы изменим его внутри функции.

Примечание: все примитивные типы данных передаются по значению, а непримитивные передаются по ссылке.

Что такое мемоизация?

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

 const memo = {}; function add(a, b) { const key = `${a}-${b}`; // checking whether we computed the value already or not if (memo[key]) { console.log("Not computing again"); return memo[key]; } // adding the newly computed value to cache // here cache is a simple global object memo[key] = a + b; return memo[key]; } console.log(add(1, 2)); console.log(add(2, 3)); console.log(add(1, 2));

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

Какой остаточный параметр?

Параметр rest используется для сбора всех оставшихся параметров в функции. Допустим, у нас есть функция, которая принимает как минимум 2 аргумента и может принимать любое максимальное количество параметров. Поскольку у нас нет максимального количества аргументов, мы можем собрать первые 2 параметра с обычными переменными, а все остальные с оставшимся параметром, используя оператор rest .

 function sample(a, b, ...rest) { console.log("Rest parameter", rest); } sample(1, 2, 3, 4, 5);

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

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

Что такое деструктуризация объекта?

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

 const object = { a: 1, b: 2, c: 3 }; // Object destructuring const { a, b, c } = object; // Now, a, b, c will be used as normal variables console.log(a, b, c);

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

 const object = { a: 1, b: 2, c: 3 }; // Changing the names of `a` and `b` const { a: changedA, b: changedB, c } = object; // Now, changedA, changedB, c will be used as normal variables console.log(changedA, changedB, c);

Что такое деструктуризация массива?

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

 const array = [1, 2, 3]; // Array destructuring // It's based on the index of the array const [a, b, c] = array; // Now, we can use a, b, c as normal variables console.log(a, b, c);

Что такое захват событий и пузырьковое распространение событий?

Захват событий и всплывающая всплывающая подсказка — это два способа распространения событий в HTML DOM. Допустим, есть два элемента HTML, один внутри другого. И событие происходит на внутреннем элементе. Теперь режим распространения событий будет определять порядок выполнения этих событий.

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

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

  1. События начинают выполняться от самого верхнего элемента до целевого элемента вниз.
  2. Событие на целевом элементе будет выполнено снова.
  3. Распространение всплывающих событий снова будет происходить до тех пор, пока не будет поднят самый верхний элемент.

Мы можем остановить распространение события, вызвав метод event.stopPropogation в обработчике событий.

Что такое промисы в JavaScript?

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

Promise может находиться в одном из следующих состояний.

  1. pending — когда операция все еще выполняется.
  2. fulfilled – когда операция завершена успешно. У нас будут результаты (если есть) в состоянии успеха.
  3. rejected – когда операция завершается с ошибкой. У нас будет причина (ошибка), почему это не удалось.

Давайте рассмотрим два примера случаев успеха и неудачи.

 // Promise which will complete successfully const successPromise = new Promise((resolve, reject) => { setTimeout(() => { resolve({ message: "Completed successfully" }); }, 300); }); successPromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); }); // Promise which will complete with failure state const failurePromise = new Promise((resolve, reject) => { setTimeout(() => { reject(new Error("Failing the promise for testing")); }, 300); }); failurePromise .then((data) => { console.log(data); }) .catch((error) => { console.log(error); });

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

Объясните различные типы областей видимости в JavaScript.

В JavaScript есть два типа области видимости. Глобальная область действия и локальная область действия .

Возможно, вы также слышали о области действия функции и области действия блока. Это локальные области видимости для var и let , const соответственно.

Что такое самовызывающиеся функции?

Самовызывающиеся функции — это безымянные функции, которые будут выполняться сразу после создания. Давайте посмотрим на некоторые примеры.

 // Without any parameters (function sayHello() { console.log("Hello, World!"); })(); // With parameters (function add(a, b) { console.log("Sum", a + b); })(1, 2);

Мы даже можем передавать аргументы функциям, вызывающим сам себя, как вы видели в примере.

Что такое стрелочные функции?

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

 // arrow functions will return by default if it doesn't have any brackets let add = (a, b) => a + b; console.log(add(1, 2));

Между стрелочными функциями и обычными функциями есть некоторые отличия.

  • У стрелочных функций нет собственной привязки this . Ключевое слово this внутри стрелочной функции относится к его родительской области видимости this .
  • Стрелочные функции нельзя использовать в качестве функций-конструкторов.

Что такое обратные вызовы?

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

 function sample(a, b, callback) { const result = a + b; callback(result); } function finished(result) { console.log("Finished with", result); } sample(1, 2, finished);

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

Какие бывают типы ошибок?

Давайте проверим некоторые ошибки в JavaScript.

ReferenceError : эта ошибка возникает, если переменная, к которой мы обращаемся, доступна.

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

SyntaxError: эта ошибка возникает, если синтаксис JavaScript неверен.

Есть и другие виды ошибок. Но это распространенные типы ошибок в JavaScript.

Каковы различные области видимости переменных в JavaScript?

В JavaScript есть две области видимости переменных. Переменные, объявленные с помощью ключевого слова var , будут иметь область видимости функции, а переменные, объявленные с помощью let и const , будут иметь область видимости блока .

Обратитесь к 17-му вопросу для получения более подробной информации об области действия этих переменных.

Что такое escape-символы в JavaScript?

Обратная косая черта — это escape-символ в JavaScript. Он используется для печати некоторых специальных символов, которые мы обычно не можем печатать. Допустим, мы хотим напечатать apostrophe (') внутри строки, что мы не можем сделать обычно, так как строка будет заканчиваться вторым апострофом. В этом случае мы будем использовать escape-символ, чтобы не заканчивать строку в этой точке.

 const message = 'Hi, I\'m Geekflare'; console.log(message);

Мы можем добиться вышеуказанного вывода без использования escape-символа, заменив внешние одиночные апострофы двойными апострофами. Но это всего лишь пример использования управляющего символа. Есть и другие символы, для которых нам определенно нужен escape-символ, например \n , \t , \\ и т. д.,

Что такое спецификация и DOM?

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

Объектная модель документа (DOM): браузеры создают DOM, когда HTML загружается в древовидную структуру. Мы можем манипулировать HTML-элементами с помощью DOM API.

Что такое экранный объект?

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

Заключение

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

Вы также можете изучить некоторые часто задаваемые вопросы и ответы на собеседованиях по Java.

Счастливого обучения