Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Механизм передачи аргументов функции (https://javascript.ru/forum/misc/84598-mekhanizm-peredachi-argumentov-funkcii.html)

DenisZ 25.10.2022 06:04

Механизм передачи аргументов функции
 
Здравствуйте! В представленном ниже коде
должно отображаться увеличение аргумента на единицу
// Функция с аргументом: 
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>")

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

рони 25.10.2022 07:39

DenisZ,
при совпадении имени переменной созданной внутри функции и названия аргумента функции, переменная "перезапишет" аргумент.
и ошибку в строке 7 исправьте.

DenisZ 26.10.2022 05:58

Здравствуйте, спасибо за ответ!
А в чем именно состоит ошибка в строке 7?
Sandbox, кстати, тоже высвечивает это как ошибку.

рони 26.10.2022 06:50

Цитата:

Сообщение от DenisZ
А в чем именно состоит ошибка в строке 7?

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

DenisZ 27.10.2022 05:49

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("спасибо!");

рони 27.10.2022 09:44

DenisZ,
на всякий случай ещё подсказка ru/en

voraa 27.10.2022 10:07

Цитата:

Сообщение от DenisZ
argType = typeof (x1);

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

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

DenisZ 29.10.2022 07:45

Цитата:

Сообщение от рони (Сообщение 548603)
DenisZ,
на всякий случай ещё подсказка ru/en

Спасибо, а причем здесь языковые коды?

DenisZ 29.10.2022 07:46

Цитата:

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

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

За уточнение спасибо!


Часовой пояс GMT +3, время: 23:27.