supkiler, Нет, это так не работает.
Код выполняется "справа налево". Ну или из глубины - наружу. Как Вам будет понятнее.
Сначала происходит 1+1
А потом run(2)
А потом console.log(run(2)).
И никак иначе.
Вадим, тогда как мне получить эти значения чтоб я их смог разбить на несколько частей , чтоб мог отдельно взять 1 потом второе число и проверить их что это действительно 1 , с помощью чего это можно сделать ?
supkiler, либо как уже предложили выше, сразу и писать строкой, а внутри функции получать элементы строки, например, разбиением строки по знаку + на массив и извлечением из него первого и второго элемента:
function run (str) {
// Разбиваем строку на массив через разделитель '+', получая массив [1,1] и извлекаем элементы в переменные a и b (тип данных у элементов будет строка)
const [a, b] = str.split('+') // a = 1, b = 1
return `${a}+${b}` // 1+1
}
console.log(run("1+1"))
supkiler,
Проблема заключается в том, что JavaScript преобразует числа в строки только при конкатенации со строками, а вы пытаетесь сконкатенировать числа между собой.
Если вам нужно получить строку 1+1 вместо числа 2, для этого вы можете использовать шаблонную строку (template string), в которой сложение будет выполняться как текст, а не как математическая операция
console.log(`${1+1}`);
// Вывод в консоль: "2"
// Обратите внимание на обратные кавычки вокруг выражения 1+1
console.log(`${1}+${1}`);
// Вывод в консоль: "1+1"
// Здесь мы разбиваем выражение на две части и использовали шаблонную строку, чтобы конкатенировать их как текст
Чтобы преобразовать результат в массив, вы можете использовать метод split:
console.log(`${1}+${1}`.split(''));
// Вывод в консоль: ["1", "+", "1"]
// Мы использовали метод split, чтобы разбить строку на массив символов
Теперь вы можете использовать этот код в вашей функции run чтобы получить строку "1+1" вместо числа 2: