fa
Feedback
Фронтендщик

Фронтендщик

رفتن به کانال در Telegram

Все для frontend developer, шуточки, тесты, статьи Администрация/Реклама @vtopua

نمایش بیشتر
1 076
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-57 روز
-1230 روز

در حال بارگیری داده...

جذب مشترکین
سپتامبر '26
سپتامبر '26
+1
در 0 کانال‌ها
اوت '26
+1
در 0 کانال‌ها
Get PRO
ژوئیه '26
+1
در 0 کانال‌ها
Get PRO
ژوئن '260
در 1 کانال‌ها
Get PRO
مه '260
در 0 کانال‌ها
Get PRO
آوریل '260
در 1 کانال‌ها
Get PRO
مارس '26
+1
در 0 کانال‌ها
Get PRO
فوریه '26
+1
در 0 کانال‌ها
Get PRO
ژانویه '260
در 0 کانال‌ها
Get PRO
دسامبر '25
+1
در 0 کانال‌ها
Get PRO
نوامبر '25
+1
در 0 کانال‌ها
Get PRO
اکتبر '250
در 0 کانال‌ها
Get PRO
سپتامبر '25
+7
در 0 کانال‌ها
Get PRO
اوت '25
+1
در 0 کانال‌ها
Get PRO
ژوئیه '25
+2
در 0 کانال‌ها
Get PRO
ژوئن '25
+1
در 0 کانال‌ها
Get PRO
مه '250
در 0 کانال‌ها
Get PRO
آوریل '25
+1
در 0 کانال‌ها
Get PRO
مارس '25
+6
در 0 کانال‌ها
Get PRO
فوریه '25
+4
در 0 کانال‌ها
Get PRO
ژانویه '25
+2
در 0 کانال‌ها
Get PRO
دسامبر '240
در 1 کانال‌ها
Get PRO
نوامبر '24
+1
در 0 کانال‌ها
Get PRO
اکتبر '24
+1
در 0 کانال‌ها
Get PRO
سپتامبر '24
+2
در 0 کانال‌ها
Get PRO
اوت '24
+2
در 0 کانال‌ها
Get PRO
ژوئیه '24
+3
در 0 کانال‌ها
Get PRO
ژوئن '24
+3
در 0 کانال‌ها
Get PRO
مه '24
+4
در 0 کانال‌ها
Get PRO
آوریل '24
+3
در 0 کانال‌ها
Get PRO
مارس '24
+3
در 0 کانال‌ها
Get PRO
فوریه '24
+3
در 1 کانال‌ها
Get PRO
ژانویه '24
+2
در 0 کانال‌ها
Get PRO
دسامبر '23
+3
در 0 کانال‌ها
Get PRO
نوامبر '23
+4
در 0 کانال‌ها
Get PRO
اکتبر '23
+3
در 0 کانال‌ها
Get PRO
سپتامبر '23
+8
در 0 کانال‌ها
Get PRO
اوت '23
+4
در 0 کانال‌ها
Get PRO
ژوئیه '23
+14
در 0 کانال‌ها
Get PRO
ژوئن '23
+6
در 0 کانال‌ها
Get PRO
مه '23
+8
در 0 کانال‌ها
Get PRO
آوریل '23
+41
در 0 کانال‌ها
Get PRO
مارس '23
+6
در 0 کانال‌ها
Get PRO
فوریه '23
+9
در 0 کانال‌ها
Get PRO
ژانویه '23
+17
در 0 کانال‌ها
Get PRO
دسامبر '22
+177
در 0 کانال‌ها
Get PRO
نوامبر '22
+142
در 0 کانال‌ها
Get PRO
اکتبر '22
+26
در 0 کانال‌ها
Get PRO
سپتامبر '22
+328
در 0 کانال‌ها
Get PRO
اوت '22
+1 290
در 0 کانال‌ها
Get PRO
ژوئیه '22
+106
در 0 کانال‌ها
Get PRO
ژوئن '22
+2
در 0 کانال‌ها
Get PRO
مه '220
در 0 کانال‌ها
Get PRO
آوریل '220
در 0 کانال‌ها
Get PRO
مارس '220
در 0 کانال‌ها
Get PRO
فوریه '220
در 0 کانال‌ها
Get PRO
ژانویه '220
در 0 کانال‌ها
Get PRO
دسامبر '210
در 0 کانال‌ها
Get PRO
نوامبر '21
+1
در 0 کانال‌ها
Get PRO
اکتبر '21
+1
در 0 کانال‌ها
Get PRO
سپتامبر '21
+4
در 0 کانال‌ها
Get PRO
اوت '210
در 0 کانال‌ها
Get PRO
ژوئیه '210
در 0 کانال‌ها
Get PRO
ژوئن '21
+1
در 0 کانال‌ها
Get PRO
مه '210
در 0 کانال‌ها
Get PRO
آوریل '21
+3
در 0 کانال‌ها
Get PRO
مارس '21
+2
در 0 کانال‌ها
Get PRO
فوریه '210
در 0 کانال‌ها
Get PRO
ژانویه '21
+1
در 0 کانال‌ها
Get PRO
دسامبر '20
+1 226
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
18 سپتامبر0
17 سپتامبر0
16 سپتامبر0
15 سپتامبر0
14 سپتامبر0
13 سپتامبر0
12 سپتامبر0
11 سپتامبر0
10 سپتامبر0
09 سپتامبر0
08 سپتامبر0
07 سپتامبر0
06 سپتامبر0
05 سپتامبر0
04 سپتامبر0
03 سپتامبر0
02 سپتامبر+1
01 سپتامبر0
پست‌های کانال
Первый путь - это сказать, что это нормальное поведение и просто проверять ифами наличие нужных нам атрибутов: function getCo
Первый путь - это сказать, что это нормальное поведение и просто проверять ифами наличие нужных нам атрибутов: function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) {  return elem.dataset.price * elem.dataset.amount;  } else { return 0; // вернем что-нибудь, например, 0 или null или false  } } 📌 #instr || Фронтендщик

2
Если теперь попробовать посчитать стоимость товара, то результате на экран выведется NaN. Согласитесь, не очень информативно.
Если теперь попробовать посчитать стоимость товара, то результате на экран выведется NaN. Согласитесь, не очень информативно. Получается, нам нужно как-то обезопасится от того, что будут отсутствовать нужные нам атрибуты. Это можно сделать двумя путями. 📌 #instr || Фронтендщик
14
3
Найдем стоимость нашего продукта: let product = document.querySelector('#product'); let cost = getCost(product); alert(cost);
Найдем стоимость нашего продукта: let product = document.querySelector('#product'); let cost = getCost(product); alert(cost); Предположим теперь следующую ситуацию: из-за какого-то сбоя на сервере он прислал нам товар, в котором отсутствует цена или количество (или оба сразу), например, вот так: <div id="product" data-product="яблоко" data-price="1000"> </div>  📌 #instr || Фронтендщик
18
4
Давайте сделаем функцию, которая будет принимать ссылку на элемент с продуктом и находить полную стоимость товара (цену умнож
Давайте сделаем функцию, которая будет принимать ссылку на элемент с продуктом и находить полную стоимость товара (цену умножать на количество): function getCost(elem) { return elem.dataset.price * elem.dataset.amount;  } 📌 #instr || Фронтендщик
21
5
Пример исключения с data- атрибутами в JavaScript Пусть при загрузке страницы сервер создает HTML код, в котором хранится наз
Пример исключения с data- атрибутами в JavaScript Пусть при загрузке страницы сервер создает HTML код, в котором хранится название, цена и количество купленного продукта: <div id="product" data-product="яблоко" data-price="1000" data-amount="5"></div>  📌 #instr || Фронтендщик
23
6
Существуют разные способы сделать это. Самый простой - в throw передать объект с ключами name и message: try { throw {name: '
Существуют разные способы сделать это. Самый простой - в throw передать объект с ключами name и message: try { throw {name: 'MyError', message: 'текст исключения'};  } catch (error) { console.log(error.name); // 'MyError'  console.log(error.message); // 'текст исключения'  } 📌 #instr || Фронтендщик
19
7
Выбрасывание своих типов исключений в JavaScript Количество встроенных в JavaScript исключений не такое большое и они чаще вс
Выбрасывание своих типов исключений в JavaScript Количество встроенных в JavaScript исключений не такое большое и они чаще всего не могут удовлетворить все наши потребности в разных типах исключений. Поэтому в JavaScript встроена возможность создавать исключения со своим типом. 📌 #instr || Фронтендщик
16
8
В JavaScript предусмотрено решение этой проблемы: можно выбрасывать исключения не только типа Error, но и любого встроенного
В JavaScript предусмотрено решение этой проблемы: можно выбрасывать исключения не только типа Error, но и любого встроенного в JavaScript типа ошибки, например, TypeError, SyntaxError, RangeError. Давайте для примера выбросим исключение типа SyntaxError: try { throw new SyntaxError('текст исключения');  } catch (error) { console.log(error.name); // 'SyntaxError'  console.log(error.message); // 'текст исключения'  } 📌 #instr || Фронтендщик
18
9
Как вы видите, тип нашего исключения - 'Error'. Такой же тип будет у любых исключений, выброшенных подобным образом. Это, одн
Как вы видите, тип нашего исключения - 'Error'. Такой же тип будет у любых исключений, выброшенных подобным образом. Это, однако, не всегда будет удобно, так как, если у нас могут быть несколько исключений, мы не сможем их отличить друг от друга. 📌 #instr || Фронтендщик
16
10
Давайте для примера выбросим исключение типа SyntaxError: try { throw new SyntaxError('текст исключения'); } catch (error) {
Давайте для примера выбросим исключение типа SyntaxError: try { throw new SyntaxError('текст исключения');  } catch (error) { console.log(error.name); // 'SyntaxError'  console.log(error.message); // 'текст исключения'  } 📌 #instr || Фронтендщик
20
11
В JavaScript предусмотрено решение этой проблемы: можно выбрасывать исключения не только типа Error, но и любого встроенного
В JavaScript предусмотрено решение этой проблемы: можно выбрасывать исключения не только типа Error, но и любого встроенного в JavaScript типа ошибки, например, TypeError, SyntaxError, RangeError. 📌 #instr || Фронтендщик
18
12
Как вы видите, тип нашего исключения - 'Error'. Такой же тип будет у любых исключений, выброшенных подобным образом. Это, одн
Как вы видите, тип нашего исключения - 'Error'. Такой же тип будет у любых исключений, выброшенных подобным образом. Это, однако, не всегда будет удобно, так как, если у нас могут быть несколько исключений, мы не сможем их отличить друг от друга. 📌 #instr || Фронтендщик
19
13
Выбрасывание различных типов исключений в JavaScript Давайте выбросим свое исключение и посмотрим, как будет вести себя объек
Выбрасывание различных типов исключений в JavaScript Давайте выбросим свое исключение и посмотрим, как будет вести себя объект с ошибкой в этом случае: try { throw new Error('текст исключения');  } catch (error) { console.log(error.name); // 'Error'  console.log(error.message); // 'текст исключения'  } 📌 #instr || Фронтендщик
19
14
Давайте теперь будем перехватывать нашу ошибку и как-то ее обрабатывать: try { alert( div(3, 0) ); } catch (error) { alert('в
Давайте теперь будем перехватывать нашу ошибку и как-то ее обрабатывать: try { alert( div(3, 0) ); } catch (error) { alert('вы пытаетесь делить на 0, что запрещено');  } 📌 #instr || Фронтендщик
20
15
Давайте для начала просто попробуем поделить на 0, не перехватывая исключение: alert( div(3, 0) ); В этом случае выполнение с
Давайте для начала просто попробуем поделить на 0, не перехватывая исключение: alert( div(3, 0) ); В этом случае выполнение скрипта прервется и в консоли появится ошибка с текстом 'ошибка деления на ноль' (проверьте). 📌 #instr || Фронтендщик
24
16
Давайте будем считать, что деление на ноль запрещено и при попытке сделать это должна возникать исключительная ситуация. Для
Давайте будем считать, что деление на ноль запрещено и при попытке сделать это должна возникать исключительная ситуация. Для этого будем проверять в функции, нет ли попытки делить на 0. Если нет - будем делить, а если да - будем бросать исключение: function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('ошибка деления на ноль');  } } 📌 #instr || Фронтендщик
21
17
Выбрасывание исключения заставляет JavaScript считать, что случилась исключительная ситуация. Это значит, что такое исключени
Выбрасывание исключения заставляет JavaScript считать, что случилась исключительная ситуация. Это значит, что такое исключение можно отловить с помощью конструкции try-catch и обработать нужным образом. Давайте посмотрим на примере, как этим пользоваться. Пусть у нас есть функция, которая делит одно число на другое: function div(a, b) { return a / b; } 📌 #instr || Фронтендщик
21
18
Давайте разберем синтаксис, необходимый для этого. Для начала исключение нужно создать с помощью команды new Error, параметро
Давайте разберем синтаксис, необходимый для этого. Для начала исключение нужно создать с помощью команды new Error, параметром передав текст исключения: new Error('текст исключения'); Затем это исключение нужно выбросить с помощью команды throw: throw new Error('текст исключения');  📌 #instr || Фронтендщик
21
19
Выбрасывание исключений в JavaScript В предыдущих уроках мы изучили два места, в которых JavaScript выбрасывает исключение в
Выбрасывание исключений в JavaScript В предыдущих уроках мы изучили два места, в которых JavaScript выбрасывает исключение в случае каких-то проблем. В вашем проекте, однако, могут быть и другие ситуации, которые для вас являются исключительными, а для JavaScript - нет. В таком случае мы можете создавать и выбрасывать свои, пользовательские исключения. 📌 #instr || Фронтендщик
25
20
Наше сообщение, это, конечно, хорошо, но оно никак не дифференцирует возникшие проблемы. Более логично было бы вывести сообще
Наше сообщение, это, конечно, хорошо, но оно никак не дифференцирует возникшие проблемы. Более логично было бы вывести сообщение о том, какая именно проблема возникла. Для этого отличим возникшие ошибки по имени: try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') {  alert('закончилось место в хранилище');  } if (error.name == 'SyntaxError') {  alert('некорректный JSON'); } } 📌 #instr || Фронтендщик
23