DaBags,
1. Люди, которые любят копаться в коде, над минимальной защитой максимум посмеются. Что им помешает вырезать эту проверку с фронта?
2. И каким образом юзер может увидеть дополнительную инфу, к которой у него нет доступа? Только если сервер дырявый и не авторизирует пользователя при каждом запросе.
3. Ещё раз, любая проверка креденшилов на фронте, это защита на уровне этой калитки:
DaBags, во-первых, каким образом пользователь вообще сможет увидеть админскую панель, если не будет копаться в коде? Такого, естественно, допускать нельзя, но не из-за "безопасности", а из-за пользовательского опыта, который от некачественного продукта ухудшается. То есть именно обычный пользователь увидеть админку не должен.
Во-вторых, увидел пользователь админку без возможности её воспользоваться и что дальше? Как это повлияет на безопасность?
В-третьих, каким образом ты вообще собрался полноценно валидировать токен на фронте? А точнее каким образом ты собрался это делать безопасно? И, главное, зачем? Какой в этом вообще плюс? Даже если бы это было безопасно, это двойная работа, двойная имплементация одного и того же функционала.
Помимо того, что в ответах написали, начни использовать eslint и prettier, чтобы не учиться ими пользоваться на работе (да и скорее всего плюсик себе заработаешь, если твой гитхаб смотреть будут).
А так же начни писать юнит тесты (на jest, к примеру).
И фреймворк, естественно (react / vue / angular).
Ты из него верстальщика сделать хочешь? Фронт ─ это в первую очередь функционал. Я не говорю, что не надо уметь делать адаптивную вёрстку, но такой сильный упор на неё делать, будучи фронтом, как-то странно.
Senseich, если срабатывает, но со второго раза, то, насколько я вижу, при первом клике на wff_action_map_button_conatiner эвент не висит. Вешается он как раз после первого клика, когда срабатывает эвент на wff_widget_FW6A9D41403F21F4E2.
Senseich, нет, это ты что-то не так сделал. Эвент должен висеть на том же элементе, на котором "ненужный" эвент и иметь тот же тип.
Данный способ не сработает только в одном случае: если эвенты, которые вешает сторонний скрипт, третьим аргументом тоже имеют true, но исходя из фрагмента кода, это не тот случай. Да и лично я ещё ни разу не встречал на практике, чтобы где-то эвенты с true вешались.
Первый же результат по запросу "js Как сделать отступ первой строки в абзаце?": htmlbook.ru/css/text-indent
Было очень сложно, целых 10 секунд на поиски потратил.
IcEWaRRiOr, потому что счёт от нуля как раз самый логичный. Более того, как ты вообще совместил имена индексов и длину? Это вообще разные понятия. Индекс ─ это просто имя ячейки, грубо говоря, а длина, это количество элементов в массиве.
Чтобы понять почему в программировании массивы стартуют с нуля, загугли что такое массив в целом и как он устроен.
Если кратко, то переменная хранит только ссылку на место (адрес), где хранятся элементы массива. Соответственно 0 говорит о том, что элемент надо читать прямо со ссылки массива. 1 означает, что начинать надо со второго блока и т.д.
Крайне грубо расписал, поэтому лучше загугли.
const sortArr = contacts.sort(function (a, b) {
Почитай как работает сорт и, заодно, про стрелочные функции.
Почитай, какой алгоритм в цивилизованном мире используется для калбека сортировки чисел.
return sortArr.reverse();
Почитай, как можно отсортировать массив по возрастанию и убыванию.
Почитай об юнионах в тс.
В общем, почитай что-нибудь...