JavaScript — это легкий, интерпретируемый, объектно-ориентированный язык с первоклассными функциями, наиболее известный как язык сценариев для веб-страниц, но он также используется во многих небраузерных средах. Этот язык имеет некоторые особенности, облегчающие работу программиста. Здесь я собираюсь рассказать о некоторых особенностях JavaScript.
Функция: Функция — это фрагмент кода, предназначенный для решения конкретной задачи. Функция выполняется только тогда, когда она вызывается.
Пример функции:
function add(a, b){ console.log(a + b); } add(2,5);
выход: 7
Функция со значениями параметров по умолчанию: Параметр по умолчанию позволяет нам передавать значения по умолчанию в функцию, но параметр по умолчанию работает только в том случае, если пользователь не передает какой-либо параметр или параметр не определен.
Пример:
function say(message=’tested’) { console.log(message); } say();
Выход: проверено
Здесь параметр не передается, поэтому работает параметр по умолчанию.
Функция стрелки: Функция стрелки позволяет нам быстро определить функцию JavaScript с помощью оператора стрелки (=›). Мы можем использовать стрелочную функцию с параметром, без параметра, даже с несколькими операторами.
Пример:
const add = (a, b) =>{ console.log(a + b); } add(5, 5); Output: 10
Оператор спреда: оператор спреда в основном используется в массиве переменных, где ожидается более 1 значения. Оператор распространения можно использовать во многих случаях, например, когда мы хотим расширить, скопировать, объединить с математическим объектом.
Пример:
const a = [2,5,6]; const s=[0, 1, …a]; console.log(s);
вывод: [0, 1, 2, 5, 6]
Функция блочного уровня: функция блочного уровня позволяет нам использовать функцию в блоке кода, и посторонний блок не может выполнить эту функцию.
Пример:
{ function block(){ console.log(“block-function”); } }
Декларация и подъем: Подъем — это поведение JavaScript по умолчанию для перемещения объявлений наверх. В ES6 переменную можно снова объявить после того, как она была использована.
Пример:
var x; // Declare x x = 5; // Assign 5 to x elem = document.getElementById(“demo”); // Find an element elem.innerHTML = x;
связывание блоков в цикле: мы знаем, что когда мы объявляем переменную с помощью var, она будет поднята наверх функции. Таким образом, даже если мы объявим переменную в цикле for, мы также сможем получить к ней доступ вне цикла. В других языках, где уровень блока является областью действия по умолчанию, переменная i будет доступна только в цикле for и не будет доступна извне. Поэтому, чтобы исправить это в JavaScript, ES6 ввел типы данных let и const.
Пример:
for (let i = 0; i < 5; i++){ console.log(i); }
В этом случае пусть я доступен только внутри цикла.
Обработка ошибок: какими бы великими программистами мы ни были. Иногда в наших скриптах возникала ошибка. Они могут возникать из-за нашей ошибки, неверного ответа сервера или неверного ввода пользователя. Если мы не обработаем эту ошибку, это может повлиять на ожидаемый результат. Существует синтаксис под названием (попробуй и поймай), с помощью которого мы можем решить эту проблему.
Синтаксис попытки поймать:
try{ //code } catch(err){ //code for handing }
Как это работает: сначала выполняется оператор try, если не найдена какая-либо ошибка, выполнение не будет продолжаться, оператор catch, и если в операторе try произойдет какая-либо ошибка, то будет выполнен оператор catch.
Объект ошибки: при возникновении ошибки JavaScript создает объект, который сообщает нам подробности об ошибке.
Мы можем передать этот объект в качестве аргумента функции catch и напечатать этот объект. Все встроенные ошибки имеют два основных свойства. Это имя для неопределенной переменной «ReffrenceError», а еще одно — это сообщение, описывающее ошибку.
Пример:
try { rashed; } catch (err) { console.log(err.name); console.log(err.message); }
Вывод:
ReferenceError
сыпь не определяется
Обработка собственной ошибки: мы также можем обрабатывать собственную ошибку, определяемую пользователем. Чтобы понять это, давайте посмотрим на пример.
Пример:
let json = ‘{ “age”: 30 }’; try { let user = JSON.parse(json); if (!user.name) { throw new SyntaxError(“Incomplete data: no name”); } console.log( user.name ); } catch (err) { console.log( “doesn’t execute” ); }
Здесь Json.parse работает нормально, фактическая ошибка заключается в том, что отсутствует user.name. когда условие проверяет, что имя пользователя недоступно, оно выдает синтаксическую ошибку и останавливает выполнение части попытки, затем ловит выбор этой ошибки и продолжает выполнение своей части.
Попробуйте поймать и, наконец: попробуйте найти ошибку, если ошибки не возникает, она будет работать нормально и не выполнять часть перехвата. Если возникают ошибки, то он прекращает выполнение, чтобы попытаться выполнить часть, и перейдет к выполнению части захвата. Основная особенность заключается в том, что финальная часть всегда выполняется независимо от того, возникают ошибки или нет.
Базовая структура:
try { … try to execute the code … } catch (err) { … handle errors … } finally { … execute always … }