Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2022, 06:04
Аспирант
Отправить личное сообщение для DenisZ Посмотреть профиль Найти все сообщения от DenisZ
 
Регистрация: 19.04.2022
Сообщений: 31

Механизм передачи аргументов функции
Здравствуйте! В представленном ниже коде
должно отображаться увеличение аргумента на единицу
// Функция с аргументом: 
function f(x){
//Значение аргумента:
var x = 100
document.write("Aргумент: "+x+"<br>")
// Изменяется значение аргумента:
х++
// Новое значение аргумента: 
document.write("Aргумент: "+x+"<br>")
}
// Переменная: 
var num=100
// Значение переменной до вызова функции: 
document.write("Переменная: "+num+"<br>") 
// Вызов функции:
f(num)
// Значение переменной после вызова функции: 
document.write("Переменная: "+num+"<br>")

Но по итогу, отображаются только исходные значения.
С чем это связано?
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2022, 07:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

DenisZ,
при совпадении имени переменной созданной внутри функции и названия аргумента функции, переменная "перезапишет" аргумент.
и ошибку в строке 7 исправьте.
Ответить с цитированием
  #3 (permalink)  
Старый 26.10.2022, 05:58
Аспирант
Отправить личное сообщение для DenisZ Посмотреть профиль Найти все сообщения от DenisZ
 
Регистрация: 19.04.2022
Сообщений: 31

Здравствуйте, спасибо за ответ!
А в чем именно состоит ошибка в строке 7?
Sandbox, кстати, тоже высвечивает это как ошибку.
Ответить с цитированием
  #4 (permalink)  
Старый 26.10.2022, 06:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

Сообщение от DenisZ
А в чем именно состоит ошибка в строке 7?
ошибка достаточно стандартная, попробуйте догадаться самостоятельно, подсказка: символов не так много, чтоб решить проблему.
Ответить с цитированием
  #5 (permalink)  
Старый 27.10.2022, 05:49
Аспирант
Отправить личное сообщение для DenisZ Посмотреть профиль Найти все сообщения от DenisZ
 
Регистрация: 19.04.2022
Сообщений: 31

function f(x1){
let argType;
argType = typeof (x1);
switch (argType) {
    case "number":
      document.write(x1+" Числовой аргумент<br>");
      break;
    case "string":
      document.write(x1+" Текстовый аргумент<br>");
      break;
  }
}
f("большое");
f("спасибо!");
Ответить с цитированием
  #6 (permalink)  
Старый 27.10.2022, 09:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,121

DenisZ,
на всякий случай ещё подсказка ru/en
Ответить с цитированием
  #7 (permalink)  
Старый 27.10.2022, 10:07
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,750

Сообщение от DenisZ
argType = typeof (x1);
Еще на всякий случай. typeof - это не функция а унарная операция. Скобки не нужны
Писать x = typeof (y) все равно, как написать x = - (y).
Вроде и не ошибка, но коряво как то.

А вообще по мне то, что в js в идентификаторах допускаются любые буквы - боль.
Сам не раз нарывался на это особенно с 'c' и 'с'.
Ответить с цитированием
  #8 (permalink)  
Старый 29.10.2022, 07:45
Аспирант
Отправить личное сообщение для DenisZ Посмотреть профиль Найти все сообщения от DenisZ
 
Регистрация: 19.04.2022
Сообщений: 31

Сообщение от рони Посмотреть сообщение
DenisZ,
на всякий случай ещё подсказка ru/en
Спасибо, а причем здесь языковые коды?
Ответить с цитированием
  #9 (permalink)  
Старый 29.10.2022, 07:46
Аспирант
Отправить личное сообщение для DenisZ Посмотреть профиль Найти все сообщения от DenisZ
 
Регистрация: 19.04.2022
Сообщений: 31

Сообщение от voraa Посмотреть сообщение
Еще на всякий случай. typeof - это не функция а унарная операция. Скобки не нужны
Писать x = typeof (y) все равно, как написать x = - (y).
Вроде и не ошибка, но коряво как то.

А вообще по мне то, что в js в идентификаторах допускаются любые буквы - боль.
Сам не раз нарывался на это особенно с 'c' и 'с'.
За уточнение спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача аргументов из одной функции в другую DivMan Общие вопросы Javascript 2 06.09.2016 05:39
Передача дополнительных аргументов при вызове функции James Brown Общие вопросы Javascript 1 05.09.2016 09:27
Распаковать массив для передачи аргументов в функцию. dimy44 Общие вопросы Javascript 2 02.02.2015 17:36
Снова о функции с переменным кол-во аргументов aleksp Общие вопросы Javascript 15 16.12.2011 03:22
Можно ли узнать имена входящих аргументов функции? FINoM Общие вопросы Javascript 27 02.05.2011 22:42