Изучайте современный JavaScript с нами совершенно бесплатно!

С чего начать программисту.

Решенные задания

Объявление const имеет много вариантов использования в современном JavaScript. Некоторые разработчики предпочитают объявлять все свои переменные, используя ключевое слово const по умолчанию, если только они не знают, что им нужно будет переназначить это значение (только в этом случае они используют let). Однако важно понимать, что объекты (включая массивы и функции), назначенные переменным с использованием const, по-прежнему изменяемы. Использование объявления const только предотвращает переназначение идентификатора переменной.

const s = [5, 6, 7];

try{
  s = [1, 2, 3];
}
catch(error) {
  console.error(error)
}

s[2] = 45;
console.log(s);
Как вы можете видеть, вы можете самостоятельно мутировать массив [5, 6, 7], а переменная s все равно укажет на измененный массив [5, 6, 45]. Как и все массивы, элементы массива в s изменяемы, но поскольку используется const, вы не можете задать переменной s новое значение с использованием оператора присваивания.

Уточнение. Чтобы было понятней в чем здесь разница, следует подробней разобрать какие именно операции выполнялись и почему где-то возникала ошибка, а где-то нет.

s = [1, 2, 3];
Вот здесь выполняется попытка уже существующей переменной s задать новое значение. Такая операция в случае с константой вызовет ошибку.

s[2] = 45;
А вот здесь мы не переменной s задаем новое значение, а отдельному элементу массива, который является значением этой переменной. Чтобы это лучше понять, следует помнить, что переменные, которым в качестве значения задаются объекты или массивы, на самом деле являются ссылками на эти объекты. При этом на один и тот же объект могут ссылаться сразу несколько переменных. Вот пример:
const s = [5, 6, 7];
const s2 = s;

s[2] = 45;
console.log(s); // [5, 6, 45]
console.log(s2); // [5, 6, 45]
console.log(s === s2); // true

Таким образом, мы изменили элемент массива только одной переменной, но измененный массив мы получили и во второй переменной, а строгая проверка этих двух переменных на равенство дала истину. Надеюсь, вы из этого поняли, что переменных две, но массив здесь только один, и меняя значения отдельных элементов массива, мы все равно имеем тот же самый массив, на который ссылаются две отдельные переменные.


Массив объявляется как const s = [5, 7, 2]. Измените массив на [2, 5, 7] используя различные назначения элементов.


Задачи где нужна помощь

  1. Статус
    Задача
    Дата создания
    Планируемая дата начала
    Планируемая дата выполнения
    Дата начала
    Дата выполнения
    Постановщик
    Кто работает
  2. Выполняется

    Задача: Загрузка картинок из редактора через @prisma-cms/uploader Нужна помощь

    Проект: Обучение. Март.

    Разбираю Editor.js и уперся: как залить картинку, которую добавляем через редактор.

    В редакторе есть функция, в которую залетает файл, в ней надо загрузить файл и вернуть полную ссылку на файл.


    import Uploader from '@prisma-cms/uploader' ... uploadByFile(file: string | Blob) { console.log('file', file) //Здесь пытаюсь через Uploader загрузиться и получить url return Uploader.upload(file).then(() => { return { success: 1, file: { url: 'http://localhost:3000/uploads/images/1638094124655-Z62_3167.jpg', }, } }) }, },

    Ругается на .upload(file): Property 'upload' does not exist on type 'typeof Uploader'.ts(2339)

    Понятно ,что куда-то совсем не туда полез ,нео выползти не получается.

    Нужна помощь!
    Вопрос: как правильно пристроить Uploader в этом случае?
    28 нояб. 2021 г., 14:06
    15 дек. 2021 г., 6:23
  3. Выполняется

    Задача: Запрос уникального объекта не по id Нужна помощь

    Проект: Обучение. Март.


    Вытаскиваю из url с помощью useRoute порпаметр поста urlname и по нему делаю фильтр среди всех постов. Работает, но явно это гланды через ж...
    Как в том случае следкет поступить?
    24 нояб. 2021 г., 8:56
    28 июля 2022 г., 10:43
  4. Выполняется

    Задача: Перенести страницы и настроить роутинг 2 Нужна помощь

    Проект: Учебный проект на next-js. Покемоны.

    Перенести оставшиеся страницы на NextJs:

    1. Перенести стили из css в styled-components
    2. Пофикстить Typescript ошибки
    3. Пофиксить подключение к firebase

    17 февр. 2021 г., 18:04
    17 февр. 2021 г., 0:00
    21 февр. 2021 г., 0:00
    17 февр. 2021 г., 0:00

Все задачи где нужна помощь

Новые Комментарии

Сорри за долгий ответ, пропустил что-то уведомление.
А вы в каком браузере работаете, где бага проявилась?
в другом браузере заработал

Все комментарии