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 …
}