Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
5 / 5 / 0
Регистрация: 25.09.2017
Сообщений: 569

Параметр функции, который может быть задан по умолчанию не определён при его передаче со значением, отличным от значения по умолчанию

17.01.2026, 07:09. Показов 1219. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Вот столкнулся с таким поведением. В некотором классе A определена функция createEncrypted, у которой параметр refresh задан по умолчанию. Когда я меняю его значение на другое (строка 42), это приводит к ошибке ReferenceError: refresh is not defined. Может ли это быть из-за атрибута объекта с тем же именем, которому присваивается значение refresh, вроде как нет. Тогда почему это не работает?



JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class A{
 
     //...
 
     async createEncrypted(initModel, refresh=false){
        var model = initModel
        const userId = model.user_id
        delete model.user_id
        while(true){
            try{
                model['salt'] = this.generateSalt()
                model['token'] = this.encrypt(
                    { 
                        id: userId,
                        refresh: refresh
                    }, 
                    model.salt
                )
                return await dao.createJWTToken(model)
            }
            catch (error){
                if (error instanceof dao.UniqueConstraintError){
                    continue
                }
                console.log(`Error while token create - ${error.stack}`)
                break
            }
        }
     }
      
     async recordCredentials(request){
        var model = super.recordCredentials(request)
        const userId = this.decryptBase64(request.id)
        const ip = requestIp.getClientIp(request)
        const info = request.headers['user-agent']
        const userAgentId = await dao.getUserAgentId(info, ip, userId)
 
        model.user_id = userId
        model['user_agent_id'] = userAgentId
        const token = await this.createEncrypted(model)
        model['that_refreshes'] = token.token
        const refreshToken = await this.createEncrypted(model, refresh=true)
 
    //...
}
Нигде я ничего подобного не нашёл, что такой параметр нельзя передавать, вот по одной из документаций, всё работает с именованым параметром и без него:

https://developer.mozilla.org/... parameters

В другом месте с тринарной функцией, которая вызывается в другой функции и у которой два последних параметра - параметры по умолчанию, это работает.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2026, 07:09
Ответы с готовыми решениями:

"В поле может быть введено только одно слово, пробелы могут быть или не быть с начала слова и в конце"
Добрый вечер уважаемые форумчане. Подскажите как написать выражение со след условием: -в поле...

Как передать параметр из jsp java страницы в функцию javascript и возвратить обратно другой параметр
На jsp странице имеется динамически формируемая таблица с чекбоксами в первой колонке каждой строки...

Параметр со значением по умолчанию в функции
Здравствуйте, не знаете как можно сделать в JS параметр с заранее заданным значением по умолчанию...

48
425 / 314 / 115
Регистрация: 28.08.2013
Сообщений: 869
19.01.2026, 21:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от krvsa Посмотреть сообщение
То топил за TS... Теперь оглобли разворачиваешь?
Покажи, где я топил за TS?
Цитата Сообщение от krvsa Посмотреть сообщение
Умелый спец если что и начал использовать - он в этом, как правило, разобрался и может объяснить зачем он это использует.
Молодняк может накуролесить даже в JS. Если возьмет еще и TS - накуролесит еще больше!
Я про это же.
Цитата Сообщение от voraa Посмотреть сообщение
Запись короче.
Где она короче?
Было:
JavaScript
1
let firstName = "Ivan";
Стало:
JavaScript
1
let firstName: string = "Ivan";
Или вот ещё
JavaScript
1
2
3
4
5
6
7
function getStatus(success: boolean): string | number {
  if (success) {
    return 200;
  } else {
    return "Error occurred";
  }
}
Цитата Сообщение от krvsa Посмотреть сообщение
Что-то мне подсказывает, что TS там просто х/з как использовали...
Ошибаешься
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,939
19.01.2026, 21:59
Цитата Сообщение от kidASM Посмотреть сообщение
Где она короче?
Она в ts короче по сравнению c jsDoc, что бы дать информацию о типе
ts
TypeScript
1
let x: number;
jsDoc
JavaScript
1
2
3
4
/**@type {number} */
let x;
или 
let /**@type {number} */ x;
ts
TypeScript
1
let img = document.querySelector ('.big-img') as !HTMLImgElement; // так кажется указывается, что клянусь, что это не null
jsDoc
JavaScript
1
2
let img =/**@type{HTMLImgElement}*/(document.querySelector ('.big-img')); 
// поклясться, что не null простого способа не существует. vsc все время будет указывать, что img может быть null
Добавлено через 5 минут
Цитата Сообщение от kidASM Посмотреть сообщение
Стало:
let firstName: string = "Ivan";
Так даже в ts не надо делать. Тип определяется и по первому присваиванию. Так и в ts и при использовании jsDoc
Везде можно написать
JavaScript
1
let firstName = "Ivan"
и все они будут понимать, что firstName строкового типа.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1753 / 432
Регистрация: 14.03.2022
Сообщений: 4,439
19.01.2026, 22:32
Цитата Сообщение от kidASM Посмотреть сообщение
Покажи, где я топил за TS?
Значит я тебя не так понял... Извини.
Тогда вообще странно получается... Диалог ведут трое противников TS.

Цитата Сообщение от kidASM Посмотреть сообщение
Где она короче?
Было:
JavaScript
1
let firstName = "Ivan";
Стало:
JavaScript
1
let firstName: string = "Ivan";
JavaScript
1
let firstName = "Ivan";
При таком объявлении можно тип не указывать. TS и так поймет что это строка.

Но с TS однозначно букв будет больше в итоге.

Добавлено через 2 минуты
Цитата Сообщение от kidASM Посмотреть сообщение
Или вот ещё
JavaScript
1
2
3
4
5
6
7
function getStatus(success: boolean): string | number {
  if (success) {
    return 200;
  } else {
    return "Error occurred";
  }
}
Опять не верная типизация.

JavaScript
1
2
3
4
5
6
7
function getStatus(success: boolean): 200 | "Error occurred" {
  if (success) {
    return 200;
  } else {
    return "Error occurred";
  }
}
Добавлено через 1 минуту
Цитата Сообщение от kidASM Посмотреть сообщение
Ошибаешься
Пока по примерам не ошибаюсь...
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,939
19.01.2026, 22:34
Цитата Сообщение от krvsa Посмотреть сообщение
Диалог ведут трое противников TS.
Ну я не совсем противник. Вполне рабочая вещь. И если бы команды, в которых приходилось бывать, работали с ts, то и я бы с ним нормально работал. А так, самому глубоко изучать и не использовать неохота.
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1753 / 432
Регистрация: 14.03.2022
Сообщений: 4,439
19.01.2026, 22:38
voraa, у меня похожая позиция.
Только я не хочу нагружать команду более сложным кодированием. Это потеря по времени разработки как минимум. И сложность вхождения для новых кадров.

Добавлено через 1 минуту
Такая же фигня и с автотестами...
Описал ситуацию работодателю. Он сказал что не готов оплачивать время на тесты и их сопровождение.
На том и порешили.
0
446 / 347 / 83
Регистрация: 17.04.2022
Сообщений: 1,164
Записей в блоге: 8
20.01.2026, 14:26
Цитата Сообщение от krvsa Посмотреть сообщение
Диалог ведут трое противников TS
Интересно, а как эти трое относятся к:
1) jQuery
2) React
3) PWA
4) WASM
5) Gemini Nano в Хроме

Подозреваю, что вы одинаково относитесь и к этим продуктам (технологиям)
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3857 / 1753 / 432
Регистрация: 14.03.2022
Сообщений: 4,439
20.01.2026, 14:52
Цитата Сообщение от sqltd1 Посмотреть сообщение
Интересно, а как эти трое относятся к:
1) jQuery
2) React
3) PWA
4) WASM
5) Gemini Nano в Хроме
1 - Работать умею. Не использую. Считаю абсолютно не нужной приблудой.
2 - Профессионально используем. + React-native для мобилок.
Про остальные не слышал совсем...

Цитата Сообщение от sqltd1 Посмотреть сообщение
Подозреваю, что вы одинаково относитесь и к этим продуктам (технологиям)
Ща проверим...
0
 Аватар для voraa
1296 / 1282 / 190
Регистрация: 21.01.2024
Сообщений: 5,939
20.01.2026, 15:25
Цитата Сообщение от sqltd1 Посмотреть сообщение
1) jQuery
Как ни относись, но почти большинство существующих сайтов написано именно на нем. Полностью переписывать никто не будет - дорого и не понятно зачем, если и так работает. А править приходится на нем.
В эпоху браузерной несовместимости немного использовал. В основном ajax и некоторые плагины. Сейчас что то новое начинать - лучше без него.
Цитата Сообщение от sqltd1 Посмотреть сообщение
2) React
Не имею с ним дело. По моим наблюдениям не слишком объемные проекты вполне и даже лучше делать на нативе/ваниле. Реакт будет вносить только дополнительный объем и сложность.
Цитата Сообщение от sqltd1 Посмотреть сообщение
3) PWA
Ну если хочется именно приложение, то почему не сделать.
Цитата Сообщение от sqltd1 Посмотреть сообщение
4) WASM
По потребностям. Я пока таких потребностей не имел. Мои сайты не занимаются решение систем диф уравнений и обработкой графики на уровне игр. Других применений я не вижу. Выгадывать наносекунды как то не серьезно.
Цитата Сообщение от sqltd1 Посмотреть сообщение
5) Gemini Nano в Хроме
Не использую, если это не та выдача, которая вылезает при поиске. Там вроде все вполне адекватно, хотя и не всегда полно.
0
446 / 347 / 83
Регистрация: 17.04.2022
Сообщений: 1,164
Записей в блоге: 8
21.01.2026, 14:20
voraa, krvsa, Спасибо за ответы.
Цитата Сообщение от voraa Посмотреть сообщение
если это не та выдача, которая вылезает при поиске.
Это не то. Это немного интереснее - https://developer.chrome.com/docs/ai/get-started
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2026, 14:20

NestJS/Swagger. Как правильно описать body параметр, что бы он отображался в документации как параметр body
Доброго времени суток, документирую проект и упёрся в недостаток знания. При описании get запросов,...

Если объект не будет передан, используйте параметр по умолчанию в виде готового объекта
что-то не могу въехать как это сделать:scratch: Напишите функцию, которая будет возвращать...

Создать функцию, которая вычисляет факториал. Предел задается с клавиатуры и передается в функцию в качестве параметр
Здравствуйте, помогите написать программу пожалуйста по этому заданию. "Создать функцию, которая...

Создать функцию, которая принимает необязательный параметр и возвращает складскую функцию
Создай функцию makeStorage, которая принимает необязательный параметр product (массив чисел с весом...

Алгоритм вычисления значения функции, задан следующими соотношениями, Чему равно значение функции Ф(16)?
Алгоритм вычисления значения функции F(n), где n - натуральное число, задан следующими...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
49
Ответ Создать тему
Новые блоги и статьи
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru