концепции

Обработка ошибок с помощью try…catch в JavaScript

Нам часто нужно отлаживать наш код. Для этого мы можем использовать блок try и catch. Таким образом, все наши коды внутри блока try будут выполняться первыми, если выполнение успешно, блок catch не выполняется. Но если в блоке try возникает какая-либо ошибка во время выполнения, немедленно выполняется блок catch. Итак, имейте в виду, что блок try… catch обрабатывает только ошибку времени выполнения, а не синтаксическую ошибку.

объект ошибки в блоке catch

Блок catch принимает в качестве параметра объект ошибки. Этот объект ошибки имеет некоторые свойства, такие как имя, сообщение, стек. имя означает имя ошибки, например ReferenceError. сообщение означает подробную информацию об этой ошибке. Давайте посмотрим на пример: -

try {
console.log( obj )
}
catch (error){
console.log (error.name) // ReferencError
console.log (error.message) // obj is not defined
}

Создать собственный объект ошибки

В JavaScript есть встроенный объект ошибки. Но иногда нам нужно создать ошибку клиента. Чтобы создать пользовательскую ошибку, мы используем оператор throw. В целом это выглядит так: выбрасывается новая ReferanceError («вы должны установить свойство имени»). Итак, мы создали экземпляр оператором new с конструктором ReferanceError. Посмотрите на код ниже: -

try {
cons obj = {}
console.log( obj.name)
if(!obj.name) {
throw new ReferanceError("You must set name property ")
}
}
catch error {
console.log(error.name) // ReferenceError
console.log(error.message) // You must set name property
}

наконец заблокировать

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

try {
// code here
}
catch {
// only executed when error happens
}
finally {
// always executed error happens or not
}

Когда использовать комментарии в коде

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

Является ли время выполнения JavaScript однопоточным или многопоточным?

Время выполнения JavaScript является однопоточным. Это означает, что среда выполнения JavaScript не может выполнить первый код до того, как будет выполнен предыдущий код. Если следует вызов стека (Last-in-Fast-out) при выполнении кода. Поскольку он однопоточный, он имеет только один стек вызовов.

Как JavaScript работает асинхронно, даже если он однопоточный?

Хотя JavaScript представляет собой один поток, мы можем получить асинхронное поведение с помощью WEP API, который предоставляется браузером, а не во время выполнения. Итак, в браузере есть несколько встроенных методов, которые реализуют асинхронное поведение в нашем коде. setTimeout эта функция на самом деле не является функцией JavaScript, а предоставляется браузером.

Что такое цикл событий в JavaScript?

Например, когда мы пишем setTimeout или любой другой ajax-вызов в нашем js-коде, он сначала отправляется в наш API браузера, после того, как процесс завершен, функция обратного вызова отправляется в стек очереди (First-in-First- вне). Затем, если стек вызовов пуст, стек очереди устанавливается в стек вызовов. Таким образом, цикл событий — это процесс, который, если стек вызовов пуст, устанавливает (если какой-либо обратный вызов в очереди) первый обратный вызов в очереди в стек вызовов.

Блокировать привязку, когда переменная объявлена ​​с помощью var

Если мы передаем переменную с var вне функции, она поднимается в глобальной области видимости, поэтому она доступна из любого места. Если мы объявляем переменную с var внутри функции, она поднимается вверху этой функции. Таким образом, он доступен из любого места этой функции, даже если он объявлен в if или for..loop, которые находятся в этой функции.

Блокировать привязку, когда переменная объявлена ​​с помощью const или let

Если мы объявим с помощью const или let, он не будет поднят, а создаст область блока. Итак, если мы объявим в фигурных скобках, это будет недоступно из этого блока. Даже если мы объявим выражение цикла for, оно будет доступно только из текущего цикла for.